<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Navo Portable Library: 双端环形序表</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- 制作者 Doxygen 1.7.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
--></script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Navo Portable Library&#160;<span id="projectnumber">Ver 1.0.20120827</span></div>
   <div id="projectbrief">Provides generic platform independent facilities.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="modules.html"><span>模块</span></a></li>
      <li><a href="annotated.html"><span>数据结构</span></a></li>
      <li><a href="files.html"><span>文件</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">宏定义</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle">
<h1>双端环形序表</h1>  </div>
<div class="ingroups"><a class="el" href="group___xE9_xA1_xBA_xE5_xBA_x8F_xE8_xA1_xA8.html">顺序表</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
宏定义</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a">dcseq_iter</a>(type)&#160;&#160;&#160;type *</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义type类型迭代器  <a href="#gab9e84c06cd2a829fa3d8abf71da2b42a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf36c9494198335d502044cabf6953610">dcseq_head</a>(type)&#160;&#160;&#160;struct { type * first; type * last; type * end; type * base; }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">type类型表头  <a href="#gaf36c9494198335d502044cabf6953610"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9596e2d64b569d331da014eb1a9e58a4"></a><!-- doxytag: member="双端环形序表::dcseq" ref="ga9596e2d64b569d331da014eb1a9e58a4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>dcseq</b>&#160;&#160;&#160;dcseq_head</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaaa9ad0649de8ea4a8c0253f70c711f37">DCSEQ_HEAD</a>(type, name, arr)&#160;&#160;&#160;dcseq_head(type) name = {arr, arr, &amp;arr[count_of(arr)], arr}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">定义一个名为name的表头，并对其初始化  <a href="#gaaa9ad0649de8ea4a8c0253f70c711f37"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66c18f81db828d9be25589ba9c9ae2a5"></a><!-- doxytag: member="双端环形序表::DCSEQ" ref="ga66c18f81db828d9be25589ba9c9ae2a5" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DCSEQ</b>&#160;&#160;&#160;DCSEQ_HEAD</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga1a4606e6ed271c585d431d43acfbfd02">dcseq_pr1</a>(type)&#160;&#160;&#160;int (*)(type *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">单参数回调函数指针类型  <a href="#ga1a4606e6ed271c585d431d43acfbfd02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gadd479f30e6ab346585935f56bd7459a9">dcseq_pr2</a>(type)&#160;&#160;&#160;int (*)(type *, type *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">双参数回调函数指针类型  <a href="#gadd479f30e6ab346585935f56bd7459a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa79a9e5a72919c092550a819122dc6eb"></a><!-- doxytag: member="双端环形序表::DCSEQ_CHECK_PASS" ref="gaa79a9e5a72919c092550a819122dc6eb" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DCSEQ_CHECK_PASS</b>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga10fa108eb0fba0fa2846e2dd8ba4a09f"></a><!-- doxytag: member="双端环形序表::DCSEQ_CHECK_INVALID" ref="ga10fa108eb0fba0fa2846e2dd8ba4a09f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DCSEQ_CHECK_INVALID</b>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabcc9819bdbdf44440aa3ce0cb04fe891"></a><!-- doxytag: member="双端环形序表::DCSEQ_CHECK_OVERFLOW" ref="gabcc9819bdbdf44440aa3ce0cb04fe891" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DCSEQ_CHECK_OVERFLOW</b>&#160;&#160;&#160;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab0d5ab66eaae015aec90fd350b9eae09">dcseq_check</a>(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">检查表  <a href="#gab0d5ab66eaae015aec90fd350b9eae09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga9f0e8604b0bc82cf270a109858916206">dcseq_reset</a>(head, _base, _first, _last, _end)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">重置表头  <a href="#ga9f0e8604b0bc82cf270a109858916206"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga701f256d0417a216e24aba367299d21d">dcseq_init</a>(type, head, base, size, _first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化表  <a href="#ga701f256d0417a216e24aba367299d21d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac17f58b3615d1aa47f9b7e7f4a65245b">dcseq_init_serial</a>(type, head, base, size, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">作为序列来初始化表  <a href="#gac17f58b3615d1aa47f9b7e7f4a65245b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga52767fda1e9acae34cafd48067edfecc">DCSEQ_INIT</a>(type, head, arr, _first)&#160;&#160;&#160;dcseq_init(type, head, arr, count_of(arr), _first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化表  <a href="#ga52767fda1e9acae34cafd48067edfecc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa10646448a570409afa332c4715bbc86">DCSEQ_INIT_SERIAL</a>(type, head, arr, cnt)&#160;&#160;&#160;dcseq_init_serial(type, head, arr, count_of(arr), cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">初始化序列  <a href="#gaa10646448a570409afa332c4715bbc86"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae233ba04d3c32eb008578f5a8491d2bd">dcseq_clear</a>(head)&#160;&#160;&#160;((head)-&gt;last = (head)-&gt;first = (head)-&gt;base)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">清空表  <a href="#gae233ba04d3c32eb008578f5a8491d2bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae6ed56f7e82b2e748f64eee7ad4f2db2">dcseq_base</a>(head)&#160;&#160;&#160;((head)-&gt;base)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获得表的缓存基址  <a href="#gae6ed56f7e82b2e748f64eee7ad4f2db2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaedbaf43349facc54fd28d5c3ac6dec95">dcseq_count</a>(head)&#160;&#160;&#160;__dcseq_count(dcseq_size(head), (head)-&gt;last - (head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取表的节点总数  <a href="#gaedbaf43349facc54fd28d5c3ac6dec95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gade232607f6d9ee8609f8e5e3aebccd7a">dcseq_size</a>(head)&#160;&#160;&#160;((size_t)((head)-&gt;end - (head)-&gt;base))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取表的缓存长度  <a href="#gade232607f6d9ee8609f8e5e3aebccd7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga6bbe2621089c0d1266e48dd6cc3cce05">dcseq_capacity</a>(head)&#160;&#160;&#160;(dcseq_size(head) - 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取表的节点容量  <a href="#ga6bbe2621089c0d1266e48dd6cc3cce05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga54d4be34663a21a7eff83ca2f9a0b69b">dcseq_remain</a>(head)&#160;&#160;&#160;(dcseq_capacity(head) - dcseq_count(head))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取表的剩余容量  <a href="#ga54d4be34663a21a7eff83ca2f9a0b69b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b0a7a36f573ff453f05a29b1f49dc0d">dcseq_empty</a>(head)&#160;&#160;&#160;__dcseq_empty((char*)((head)-&gt;first), (char*)((head)-&gt;last))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否为空  <a href="#ga3b0a7a36f573ff453f05a29b1f49dc0d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac8928e1e92dfafbc3e823d4edf7d79bd">dcseq_full</a>(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否已满  <a href="#gac8928e1e92dfafbc3e823d4edf7d79bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3282309a688e1a002cc0786a5791d9c7">dcseq_singular</a>(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否只有单个节点  <a href="#ga3282309a688e1a002cc0786a5791d9c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga37a0ad76a4d6e0e445e96215c7331739">dcseq_sortable</a>(head)&#160;&#160;&#160;__dcseq_sortable(dcseq_size(head), (head)-&gt;last - (head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否可以被排序  <a href="#ga37a0ad76a4d6e0e445e96215c7331739"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacf351a975e83708d43977233acfcc223">dcseq_insertable</a>(head, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否可以插入一定数量的节点  <a href="#gacf351a975e83708d43977233acfcc223"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga291b691ec419c75159823ecae81d8587">dcseq_serialable</a>(head)&#160;&#160;&#160;__dcseq_serialable((char*)((head)-&gt;first), (char*)((head)-&gt;last))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断表是否可以序列化  <a href="#ga291b691ec419c75159823ecae81d8587"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga27c8c83b6f266c1d9ffa8ed8c0aaac21">dcseq_copyable</a>(dst, src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断源表是否可以深拷贝到目标表  <a href="#ga27c8c83b6f266c1d9ffa8ed8c0aaac21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacc42c81d740d37cc0d1cfd667269f7e2">dcseq_at</a>(type, head, index)&#160;&#160;&#160;__dcseq_at(type, (head)-&gt;base, (head)-&gt;end, (head)-&gt;first + (index))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">根据正向索引获取迭代器  <a href="#gacc42c81d740d37cc0d1cfd667269f7e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7bdaa7022544f6483bfb0df0fc2b5b95"></a><!-- doxytag: member="双端环形序表::__dcseq_at" ref="ga7bdaa7022544f6483bfb0df0fc2b5b95" args="(type, base, end, dest)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_at</b>(type, base, end, dest)&#160;&#160;&#160;((type *)__do_dcseq_at((char*)(base), (char*)(end), (char*)(dest)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga39ffa37877fb5f868b548f2ea6a64d6c">dcseq_reverse_at</a>(type, head, index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">根据逆向索引获取迭代器  <a href="#ga39ffa37877fb5f868b548f2ea6a64d6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_reverse_at</b>(type, base, end, dest)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7c7c54b5a59f69d9695c4fe01a1c26a2">dcseq_index_of</a>(head, itr)&#160;&#160;&#160;__dcseq_index_of(dcseq_size(head), (itr) - (head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取迭代器对应的正向索引  <a href="#ga7c7c54b5a59f69d9695c4fe01a1c26a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafcad503fcb29e86a6edc09da7e4fd830">dcseq_reverse_index_of</a>(head, itr)&#160;&#160;&#160;__dcseq_reverse_index_of(dcseq_size(head), (head)-&gt;last - (itr))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取迭代器对应的逆向索引  <a href="#gafcad503fcb29e86a6edc09da7e4fd830"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga31835b5d37c85a1d9a7c2b0cbc753123">dcseq_exist</a>(head, itr)&#160;&#160;&#160;__dcseq_exist((head)-&gt;base, (head)-&gt;first, (head)-&gt;last, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断迭代器对应的节点是否存在于表中  <a href="#ga31835b5d37c85a1d9a7c2b0cbc753123"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_exist</b>(base, first, last, end, itr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5ec04ebafe9d653d3be80562f5b772eb">dcseq_distance</a>(head, first, last)&#160;&#160;&#160;__dcseq_distance(dcseq_size(head), (last) - (first))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计算两个节点的迭代距离  <a href="#ga5ec04ebafe9d653d3be80562f5b772eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2c7dab6b2be2e3a8d6bd95c7b06791ae">dcseq_insert</a>(type, head, pos, newly)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">在指定位置插入节点  <a href="#ga2c7dab6b2be2e3a8d6bd95c7b06791ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5620ad4a15ef8bb65f58b34b57be17b9">dcseq_erase</a>(type, head, pos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">删除指定位置的节点  <a href="#ga5620ad4a15ef8bb65f58b34b57be17b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga81be7d5f42effc8658ab6fd93ec2f165">dcseq_inserts</a>(type, head, pos, src, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">在指定位置连续插入多个节点  <a href="#ga81be7d5f42effc8658ab6fd93ec2f165"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga8a1d8b81cb254000f03e129143c80a8d">dcseq_erases</a>(type, head, _begin, _end)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">连续删除指定位置的多个节点  <a href="#ga8a1d8b81cb254000f03e129143c80a8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga82383642bb62bc1a946511d8d249cfac">dcseq_splice</a>(type, dst, pos, src, _first, _last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">移接一段序列[first, last]到目标位置。本方法只可以在不同的序表之间  <a href="#ga82383642bb62bc1a946511d8d249cfac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3183dcaa0721b314454852a5d6b934d6">dcseq_appends</a>(type, head, src, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">在表尾添加多个节点  <a href="#ga3183dcaa0721b314454852a5d6b934d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga261cb5811d552285e5848042c5f906a6">dcseq_append</a>(head, newly)&#160;&#160;&#160;(*((head)-&gt;last++) = (newly))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">在表尾添加新节点  <a href="#ga261cb5811d552285e5848042c5f906a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf357cdeb311d5d2d7609c81c97c6a744">dcseq_copy</a>(type, dst, src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">深拷贝源表的节点到目标表  <a href="#gaf357cdeb311d5d2d7609c81c97c6a744"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga642f3253dbeeff4f4eba5c1893204a2a">dcseq_push_front</a>(type, head)&#160;&#160;&#160;((type *)dcseq_dec(head, (head)-&gt;first))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取指向表首插入节点位置的迭代器  <a href="#ga642f3253dbeeff4f4eba5c1893204a2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe68987046efd89e34fd3be135ae3892">dcseq_push_back</a>(type, head)&#160;&#160;&#160;dcseq_inc_later(type, head, (head)-&gt;last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取指向表尾插入节点位置的迭代器  <a href="#gabe68987046efd89e34fd3be135ae3892"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga308642d86d07048a845099ac670a3acb">dcseq_pop_front</a>(type, head)&#160;&#160;&#160;dcseq_inc_later(type, head, (head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取指向表首节点位置的迭代器  <a href="#ga308642d86d07048a845099ac670a3acb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaacd568e3509c4e7996aa15b60602ad1e">dcseq_pop_back</a>(type, head)&#160;&#160;&#160;((type *)dcseq_dec(head, (head)-&gt;last))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取指向表尾节点位置的迭代器  <a href="#gaacd568e3509c4e7996aa15b60602ad1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5349cc1a47edf529216a59099a05d49a">dcseq_iter_replace</a>(victim, newly)&#160;&#160;&#160;(*(victim) = (newly))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用新节点替换目标节点  <a href="#ga5349cc1a47edf529216a59099a05d49a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_iter_swap</b>(type, a, b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7f3dac7d3c6f0814b436407b0adce396">dcseq_iter_swap</a>(type, a, b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用新节点替换目标节点  <a href="#ga7f3dac7d3c6f0814b436407b0adce396"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5a2034fe041f6afb077925c7679fb424">dcseq_replace</a>(victim, newly)&#160;&#160;&#160;(*(victim) = *(newly))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用新表头替换目标表头  <a href="#ga5a2034fe041f6afb077925c7679fb424"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga9312f46643026c0a60f7b3ae57a9a6ed">dcseq_swap</a>(type, a, b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">交换两个表头  <a href="#ga9312f46643026c0a60f7b3ae57a9a6ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf56b4267ee35cb8d76cc752efed76e81">dcseq_front</a>(head)&#160;&#160;&#160;((head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到表首节点  <a href="#gaf56b4267ee35cb8d76cc752efed76e81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga302b3de503cacadd24e475a0e21d401b">dcseq_back</a>(head)&#160;&#160;&#160;__dcseq_back((head)-&gt;base, (head)-&gt;last, (head)-&gt;end)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到表首节点  <a href="#ga302b3de503cacadd24e475a0e21d401b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8b72ec730d605055e1478c447a1b891"></a><!-- doxytag: member="双端环形序表::__dcseq_back" ref="gab8b72ec730d605055e1478c447a1b891" args="(base, last, end)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_back</b>(base, last, end)&#160;&#160;&#160;(((last) &gt; (base))? ((last) - 1): ((end) - 1))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580">dcseq_begin</a>(head)&#160;&#160;&#160;dcseq_front(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向正向起始位置的迭代器  <a href="#gafd47b3c616bf83cf88e38fc6afcad580"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96">dcseq_end</a>(head)&#160;&#160;&#160;((head)-&gt;last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向正向终止位置的迭代器  <a href="#gaed55996a20f8e2bed24409fd5319ab96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga55d25c1e2a956becd038e3a4bcecfa1c">dcseq_end_of</a>(head, last)&#160;&#160;&#160;dcseq_next(head, last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向当前节点的正向终止位置的迭代器  <a href="#ga55d25c1e2a956becd038e3a4bcecfa1c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9">dcseq_rbegin</a>(head)&#160;&#160;&#160;dcseq_back(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向逆向起始位置的迭代器  <a href="#gaf70ac85655acd46c15342ef107982ae9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676">dcseq_rend</a>(head)&#160;&#160;&#160;dcseq_prev(head, (head)-&gt;first)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向逆向起始位置的迭代器  <a href="#gafdbfa6d98f95af2063eac747ddfe9676"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5b7a5959a31b5a4ddbe9d6e65ece1544">dcseq_rend_of</a>(head, rlast)&#160;&#160;&#160;dcseq_prev(head, rlast)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到指向当前节点的逆向终止位置的迭代器  <a href="#ga5b7a5959a31b5a4ddbe9d6e65ece1544"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2dfa4c22532771b34aeb2f5038fe1c88">dcseq_next</a>(head, itr)&#160;&#160;&#160;__dcseq_next((head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前节点的后继节点  <a href="#ga2dfa4c22532771b34aeb2f5038fe1c88"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cef40f1047100cd84e73a6d341e3505"></a><!-- doxytag: member="双端环形序表::__dcseq_next" ref="ga0cef40f1047100cd84e73a6d341e3505" args="(base, end, itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_next</b>(base, end, itr)&#160;&#160;&#160;(((itr) + 1 &gt;= (end))? (base): ((itr) + 1))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga06745f62cd24f19e86230e73404026fe">dcseq_prev</a>(head, itr)&#160;&#160;&#160;__dcseq_prev((head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前节点的前驱节点  <a href="#ga06745f62cd24f19e86230e73404026fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga117559ec72bf6ca0d501fbf94a1814b9"></a><!-- doxytag: member="双端环形序表::__dcseq_prev" ref="ga117559ec72bf6ca0d501fbf94a1814b9" args="(base, end, itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_prev</b>(base, end, itr)&#160;&#160;&#160;(((itr) &lt; (base) + 1)? ((end) - 1): ((itr) - 1))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabfbaee41c13bae986253b8e4e77d8028">dcseq_advance</a>(type, head, cur, dist)&#160;&#160;&#160;__dcseq_advance(type, (head)-&gt;base, (head)-&gt;end, (type *)(cur) + (dist))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">给迭代器增加一段距离或减小一段距离  <a href="#gabfbaee41c13bae986253b8e4e77d8028"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaefac8a943f1c7e20c3b8b10d7053a816"></a><!-- doxytag: member="双端环形序表::__dcseq_advance" ref="gaefac8a943f1c7e20c3b8b10d7053a816" args="(type, base, end, dest)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_advance</b>(type, base, end, dest)&#160;&#160;&#160;((type *)__do_dcseq_advance((char*)(base), (char*)(end), (char*)(dest)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5f13da69cb54c7f5770916783cb17fb0">DCSEQ_NOT_END</a>(itr, end)&#160;&#160;&#160;((itr) != (end))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代结束条件  <a href="#ga5f13da69cb54c7f5770916783cb17fb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacbeb11dd8a7ba4d43d5e2e79ce685073">DCSEQ_NOT_REND</a>(itr, rend)&#160;&#160;&#160;((itr) != (rend))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">逆向迭代结束条件  <a href="#gacbeb11dd8a7ba4d43d5e2e79ce685073"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga42572fa27232bd6618cb30487fa0be60">dcseq_inc</a>(head, itr)&#160;&#160;&#160;__dcseq_inc((head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器递增  <a href="#ga42572fa27232bd6618cb30487fa0be60"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga835a40bc65b0348e544cbec9fac6b21f">dcseq_dec</a>(head, itr)&#160;&#160;&#160;__dcseq_dec((head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器递减  <a href="#ga835a40bc65b0348e544cbec9fac6b21f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga05ed4ffe76c677596202f75ba99b08af">dcseq_add</a>(type, head, itr, cnt)&#160;&#160;&#160;__dcseq_add(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器增加  <a href="#ga05ed4ffe76c677596202f75ba99b08af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga39400aabf3e01c763c2dad7042136de5">dcseq_sub</a>(type, head, itr, cnt)&#160;&#160;&#160;__dcseq_sub(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器减小  <a href="#ga39400aabf3e01c763c2dad7042136de5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2e02f51a06ed45c02d7d1426e46dedfa">dcseq_inc_later</a>(type, head, itr)&#160;&#160;&#160;__dcseq_inc_later(type, (head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后递增  <a href="#ga2e02f51a06ed45c02d7d1426e46dedfa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacbbb60170c5465e4b753f93684c43fbb">dcseq_dec_later</a>(type, head, itr)&#160;&#160;&#160;__dcseq_dec_later(type, (head)-&gt;base, (head)-&gt;end, itr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后递减  <a href="#gacbbb60170c5465e4b753f93684c43fbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70206861e2a406862336cb2d96d36b49">dcseq_add_later</a>(type, head, itr, cnt)&#160;&#160;&#160;__dcseq_add_later(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后增加  <a href="#ga70206861e2a406862336cb2d96d36b49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gad45f2e3f82642762d7846f633f22d5b2">dcseq_sub_later</a>(type, head, itr, cnt)&#160;&#160;&#160;__dcseq_sub_later(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">迭代器后减少  <a href="#gad45f2e3f82642762d7846f633f22d5b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46fe2693c467989ab2de60705e788fea"></a><!-- doxytag: member="双端环形序表::__dcseq_inc" ref="ga46fe2693c467989ab2de60705e788fea" args="(base, end, itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_inc</b>(base, end, itr)&#160;&#160;&#160;((itr) = __dcseq_next(base, end, itr))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1728bcd88215d67e632bf3a6314ce037"></a><!-- doxytag: member="双端环形序表::__dcseq_dec" ref="ga1728bcd88215d67e632bf3a6314ce037" args="(base, end, itr)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_dec</b>(base, end, itr)&#160;&#160;&#160;((itr) = __dcseq_prev(base, end, itr))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga362138f3cf9107e0b4913c9a7e7d10a1"></a><!-- doxytag: member="双端环形序表::__dcseq_add" ref="ga362138f3cf9107e0b4913c9a7e7d10a1" args="(type, base, end, itr, cnt)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_add</b>(type, base, end, itr, cnt)&#160;&#160;&#160;((itr) = __dcseq_advance(type, base, end, (itr) + (cnt)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga331cc1f94066d9c40fb0e889ffc18059"></a><!-- doxytag: member="双端环形序表::__dcseq_sub" ref="ga331cc1f94066d9c40fb0e889ffc18059" args="(type, base, end, itr, cnt)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_sub</b>(type, base, end, itr, cnt)&#160;&#160;&#160;((itr) = __dcseq_advance(type, base, end, (itr) - (cnt)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_inc_later</b>(type, base, end, itr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_dec_later</b>(type, base, end, itr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_add_later</b>(type, base, end, itr, cnt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_sub_later</b>(type, base, end, itr, cnt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga597993b699fe8ad8ad2684ed4be30341">dcseq_iter_less</a>(first, last, itr1, itr2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断itr1是否小于itr2  <a href="#ga597993b699fe8ad8ad2684ed4be30341"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2362e4de1dc10f118af111cfca83bc40">dcseq_iter_less_equal</a>(first, last, itr1, itr2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断itr1是否小于等于itr2  <a href="#ga2362e4de1dc10f118af111cfca83bc40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaffb6790b6ba112981a975fbc1fd3b10e">dcseq_iter_greater</a>(first, last, itr1, itr2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断itr1是否大于itr2  <a href="#gaffb6790b6ba112981a975fbc1fd3b10e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gad777d40b5430cd03c03c09c32e57c5e7">dcseq_iter_greater_equal</a>(first, last, itr1, itr2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断itr1是否大于等于itr2  <a href="#gad777d40b5430cd03c03c09c32e57c5e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac2168edcbae3122bbe1292262c2d780a">dcseq_foreach</a>(type, head, begin, _end, fn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">正向遍历begin到end的节点， 并为每一个节点调用回调函数或宏  <a href="#gac2168edcbae3122bbe1292262c2d780a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae3989307be034e738fe1921b441056d0">dcseq_reverse_foreach</a>(type, head, rbegin, rend, fn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">逆向遍历rbegin到rend的节点， 并为每一个节点调用回调函数或宏  <a href="#gae3989307be034e738fe1921b441056d0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0481383b88b1a7f232120f776872a7d4">dcseq_search</a>(type, head, begin, _end, equal, var, res)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">顺序查找区域内的指定节点  <a href="#ga0481383b88b1a7f232120f776872a7d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa6ab92ee8678331df3af5f4c2f8e281d">dcseq_binary_search</a>(type, head, begin, _end, greater, var, res)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">二分查找区域内的指定节点  <a href="#gaa6ab92ee8678331df3af5f4c2f8e281d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b">dcseq_vbegin</a>(head)&#160;&#160;&#160;dcseq_begin(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到正反转的起始迭代器  <a href="#ga49f9bab17c77a6f8e851ea9ca1eee12b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc">dcseq_rvbegin</a>(head)&#160;&#160;&#160;dcseq_rbegin(head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到逆反转的起始迭代器  <a href="#ga532f7a370d2929d520056156408fc0dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274">dcseq_vend</a>(type, head)&#160;&#160;&#160;dcseq_at(type, head, dcseq_count(head) &gt;&gt; 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">得到用于反转的终止位置的迭代器  <a href="#ga7833ddc71d73f5beb56f52a35dbbc274"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_vnext</b>(base, end, i, r)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>dcseq_vnext</b>(head, i, r)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_vswap</b>(type, base, end, i, r)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9">dcseq_vswap</a>(type, head, i, r)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">交换反转操作  <a href="#ga4980e41e8bf7f890effe770d4ddd75a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae1c00c20f6e35304548845e17f56d625">dcseq_reverse</a>(type, head)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">反转表  <a href="#gae1c00c20f6e35304548845e17f56d625"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga87879cbca6e59c75ef488c453d75c76e">dcseq_serialize</a>(type, head, buf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">序列化  <a href="#ga87879cbca6e59c75ef488c453d75c76e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga1bbbab45a7cd2e7fb868901876fcf2de">dcseq_fill</a>(type, head, begin, _end, val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">用val填充区域  <a href="#ga1bbbab45a7cd2e7fb868901876fcf2de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga09978a995c2812e161379bcb5dfcbac7">dcseq_generate</a>(type, head, begin, _end, generator)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">使用输入产生器来填充区域  <a href="#ga09978a995c2812e161379bcb5dfcbac7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga99199c778b2eef7b69782e9d8162b8ba">dcseq_is_heap</a>(type, head, begin, _end, greater, res)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断区域是否是一个最大堆  <a href="#ga99199c778b2eef7b69782e9d8162b8ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaf81c72fcd8efe0aa204a69bd8cbfd08"></a><!-- doxytag: member="双端环形序表::__dcseq_ret_gt" ref="gaaf81c72fcd8efe0aa204a69bd8cbfd08" args="(B, E, i, j, r, greater)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_ret_gt</b>(B, E, i, j, r, greater)&#160;&#160;&#160;if (greater((i), (j))) { (r) = 0; break; } __dcseq_inc(B, E, i)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga24e87cd87cd11ac60d3b65941060c3cf">dcseq_push_heap</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">将区域最后一个节点插入到堆中  <a href="#ga24e87cd87cd11ac60d3b65941060c3cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3806407289a20307435660eb285ed540">dcseq_pop_heap</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">弹出区域中堆的顶点节点  <a href="#ga3806407289a20307435660eb285ed540"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_pop_heap</b>(type, base, _End, begin, _end, greater)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_adjust_heap</b>(type, base, end, begin, first, last, greater)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca">dcseq_make_heap</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">将一段区域建立成最大堆  <a href="#ga3b32d00e1ad46490f8dc23d42bb41cca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04">dcseq_sort_heap</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">对最大堆进行排序  <a href="#ga70013a4cedd4531baf023feede4dbb04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga8001a76151ce4cd6ee392b9a579eb8fe">dcseq_shuffle</a>(type, head, begin, _end, _RAND)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">对区域内的节点进行随机排列  <a href="#ga8001a76151ce4cd6ee392b9a579eb8fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga19106e50ba4708aaf2c700eed7ab0eb1">dcseq_sort_insert</a>(type, head, begin, _end, newly, greater_equal)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">按序插入  <a href="#ga19106e50ba4708aaf2c700eed7ab0eb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92">dcseq_is_sorted</a>(type, head, begin, _end, greater_equal, res)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">判断区域是否是已排序的  <a href="#gaef96e240d3b279b8eb2f46bd147c0b92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab28cb3d399f9e944a37306161671f051">dcseq_bubble_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">冒泡排序  <a href="#gab28cb3d399f9e944a37306161671f051"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga23f7f28d4e1bb6a16df653258a76ff0f">dcseq_oddeven_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">奇偶排序  <a href="#ga23f7f28d4e1bb6a16df653258a76ff0f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_oddeven_scan</b>(start, type, greater)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga533b795a92e90a8d0c71e25e6ea07ef6">dcseq_comb_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">梳子排序  <a href="#ga533b795a92e90a8d0c71e25e6ea07ef6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga067b0e3265a2a524f33813d014ede4bb">dcseq_select_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">选择排序  <a href="#ga067b0e3265a2a524f33813d014ede4bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0383a8dd2d6850231e26d4c5bbc894b5">dcseq_insert_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">插入排序  <a href="#ga0383a8dd2d6850231e26d4c5bbc894b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac737294728c7c43c4d003b1f82690a41">dcseq_shell_sort</a>(type, head, begin, _end, greater)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">希尔排序  <a href="#gac737294728c7c43c4d003b1f82690a41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0e81257e6808089aea04c746c3b14b0b">COUNTING_SIZE</a>(_min, _max)&#160;&#160;&#160;((_max) - (_min) + 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计数排序计数缓存大小  <a href="#ga0e81257e6808089aea04c746c3b14b0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe56db9f8a1c3e4e29a31b7597b9b59e">PIGEONHOLE_SIZE</a>(_max)&#160;&#160;&#160;((_max) + 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">鸽巢排序计数缓存大小  <a href="#gabe56db9f8a1c3e4e29a31b7597b9b59e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga233c96443471123318f2de6262eefa20">dcseq_counting_sort</a>(type, head, begin, _end, hole, _min, _max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">计数排序  <a href="#ga233c96443471123318f2de6262eefa20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0d1f01908ac57276f253d972c0152120">dcseq_pigeonhole_sort</a>(type, head, begin, _end, hole, _max)&#160;&#160;&#160;dcseq_counting_sort(type, head, begin, _end, hole, 0, _max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">鸽巢排序  <a href="#ga0d1f01908ac57276f253d972c0152120"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
函数</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e9b8d6c704e558b09bf53768d7d3329"></a><!-- doxytag: member="双端环形序表::__dcseq_check" ref="ga4e9b8d6c704e558b09bf53768d7d3329" args="(char *first, char *last, char *end, char *base)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_check</b> (char *first, char *last, char *end, char *base)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1a48333c1f0fbb338eea57ffdf0e91e2"></a><!-- doxytag: member="双端环形序表::__dcseq_count" ref="ga1a48333c1f0fbb338eea57ffdf0e91e2" args="(int size, int dist)" -->
static size_t&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_count</b> (int size, int dist)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga857873cb497a71862d047f73b49852d8"></a><!-- doxytag: member="双端环形序表::__dcseq_empty" ref="ga857873cb497a71862d047f73b49852d8" args="(char *first, char *last)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_empty</b> (char *first, char *last)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac48029aa329030fd4b5419ff4d63a0db"></a><!-- doxytag: member="双端环形序表::__dcseq_full" ref="gac48029aa329030fd4b5419ff4d63a0db" args="(char *base, char *first, char *end, char *last_next)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_full</b> (char *base, char *first, char *end, char *last_next)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c27c659d2b477468fc5c3e3129b9e8a"></a><!-- doxytag: member="双端环形序表::__dcseq_singular" ref="ga4c27c659d2b477468fc5c3e3129b9e8a" args="(char *base, char *last, char *end, char *first_next)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_singular</b> (char *base, char *last, char *end, char *first_next)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacbecd80526b00583c0dc48a2a549427d"></a><!-- doxytag: member="双端环形序表::__dcseq_sortable" ref="gacbecd80526b00583c0dc48a2a549427d" args="(int size, int dist)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_sortable</b> (int size, int dist)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga983af2e2915e08597968a81de9eb83cd"></a><!-- doxytag: member="双端环形序表::__dcseq_insertable" ref="ga983af2e2915e08597968a81de9eb83cd" args="(int size, int dist, int cnt)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_insertable</b> (int size, int dist, int cnt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0c99a6eb08d15ea85cf8293af8b69627"></a><!-- doxytag: member="双端环形序表::__dcseq_serialable" ref="ga0c99a6eb08d15ea85cf8293af8b69627" args="(char *first, char *last)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_serialable</b> (char *first, char *last)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae387ac51b976c6396e3e5f4fa47d05cf"></a><!-- doxytag: member="双端环形序表::__dcseq_copyable" ref="gae387ac51b976c6396e3e5f4fa47d05cf" args="(char *dst, char *src, char *s_first, char *s_last, char *s_base, char *s_end, char *d_base, char *d_end)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_copyable</b> (char *dst, char *src, char *s_first, char *s_last, char *s_base, char *s_end, char *d_base, char *d_end)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ce0913617256a9837b885f3e9d76512"></a><!-- doxytag: member="双端环形序表::__do_dcseq_at" ref="ga0ce0913617256a9837b885f3e9d76512" args="(char *base, char *end, char *dest)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_at</b> (char *base, char *end, char *dest)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaae41c9e562ffed66d623e60289c2a049"></a><!-- doxytag: member="双端环形序表::__do_dcseq_reverse_at" ref="gaae41c9e562ffed66d623e60289c2a049" args="(char *base, char *end, char *dest)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_reverse_at</b> (char *base, char *end, char *dest)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8eb570894f0ebf3bab9482c4135b442e"></a><!-- doxytag: member="双端环形序表::__dcseq_index_of" ref="ga8eb570894f0ebf3bab9482c4135b442e" args="(int size, int dist)" -->
static size_t&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_index_of</b> (int size, int dist)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91c55a67a90767ec33c529b4e9797445"></a><!-- doxytag: member="双端环形序表::__dcseq_reverse_index_of" ref="ga91c55a67a90767ec33c529b4e9797445" args="(int size, int dist)" -->
static size_t&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_reverse_index_of</b> (int size, int dist)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e1b1ada03188b3ab6b03054c08fd9cb"></a><!-- doxytag: member="双端环形序表::__do_dcseq_exist" ref="ga4e1b1ada03188b3ab6b03054c08fd9cb" args="(char *base, char *first, char *last, char *end, char *itr)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_exist</b> (char *base, char *first, char *last, char *end, char *itr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga525252d57e4f47598fed3cc7d4e8972e"></a><!-- doxytag: member="双端环形序表::__dcseq_distance" ref="ga525252d57e4f47598fed3cc7d4e8972e" args="(int size, int dist)" -->
static size_t&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_distance</b> (int size, int dist)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b6380e15cfbcdfe3c6e40713e27c5b2"></a><!-- doxytag: member="双端环形序表::__do_dcseq_advance" ref="ga1b6380e15cfbcdfe3c6e40713e27c5b2" args="(char *base, char *end, char *dest)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_advance</b> (char *base, char *end, char *dest)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac14ebe9cd8ed321e3b22349a21e6d280"></a><!-- doxytag: member="双端环形序表::__do_dcseq_inc_later" ref="gac14ebe9cd8ed321e3b22349a21e6d280" args="(char *base, char *end, char *dest, char *cur, char **p)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_inc_later</b> (char *base, char *end, char *dest, char *cur, char **p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e42ba31b189f8e3c9fa6a24823d3534"></a><!-- doxytag: member="双端环形序表::__do_dcseq_dec_later" ref="ga7e42ba31b189f8e3c9fa6a24823d3534" args="(char *base, char *nend, char *dest, char *cur, char **p)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_dec_later</b> (char *base, char *nend, char *dest, char *cur, char **p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa663fb935e90aef15809f5001f2bdbf9"></a><!-- doxytag: member="双端环形序表::__do_dcseq_add_sub_later" ref="gaa663fb935e90aef15809f5001f2bdbf9" args="(char *base, char *end, char *dest, char *cur, char **p)" -->
static char *&#160;</td><td class="memItemRight" valign="bottom"><b>__do_dcseq_add_sub_later</b> (char *base, char *end, char *dest, char *cur, char **p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d1b5716a5efa319030a7c120c233556"></a><!-- doxytag: member="双端环形序表::__dcseq_iter_less" ref="ga0d1b5716a5efa319030a7c120c233556" args="(char *first, char *last, char *itr1, char *itr2)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_iter_less</b> (char *first, char *last, char *itr1, char *itr2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga336a8f0dc99eb734642b1c40b2b9984f"></a><!-- doxytag: member="双端环形序表::__dcseq_iter_less_equal" ref="ga336a8f0dc99eb734642b1c40b2b9984f" args="(char *first, char *last, char *itr1, char *itr2)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_iter_less_equal</b> (char *first, char *last, char *itr1, char *itr2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga61e01967ae73d0b86dc7b021545468e2"></a><!-- doxytag: member="双端环形序表::__dcseq_iter_greater" ref="ga61e01967ae73d0b86dc7b021545468e2" args="(char *first, char *last, char *itr1, char *itr2)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_iter_greater</b> (char *first, char *last, char *itr1, char *itr2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafab3c746204fe3a31cad5e9f780fd69b"></a><!-- doxytag: member="双端环形序表::__dcseq_iter_greater_equal" ref="gafab3c746204fe3a31cad5e9f780fd69b" args="(char *first, char *last, char *itr1, char *itr2)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>__dcseq_iter_greater_equal</b> (char *first, char *last, char *itr1, char *itr2)</td></tr>
</table>
<hr/><h2>宏定义文档</h2>
<a class="anchor" id="gab9e84c06cd2a829fa3d8abf71da2b42a"></a><!-- doxytag: member="dcseq.h::dcseq_iter" ref="gab9e84c06cd2a829fa3d8abf71da2b42a" args="(type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;type *</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>定义type类型迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>节点类型 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00038">38</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaf36c9494198335d502044cabf6953610"></a><!-- doxytag: member="dcseq.h::dcseq_head" ref="gaf36c9494198335d502044cabf6953610" args="(type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_head</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;struct { type * first; type * last; type * end; type * base; }</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>type类型表头 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>节点类型 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>base为缓存基地址， first为首节点 last为末尾节点(末尾节点是空的)， end是缓存末尾 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00049">49</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaaa9ad0649de8ea4a8c0253f70c711f37"></a><!-- doxytag: member="dcseq.h::DCSEQ_HEAD" ref="gaaa9ad0649de8ea4a8c0253f70c711f37" args="(type, name, arr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DCSEQ_HEAD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">arr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_head(type) name = {arr, arr, &amp;arr[count_of(arr)], arr}</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>定义一个名为name的表头，并对其初始化 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramname">name</td><td>表头名称 </td></tr>
    <tr><td class="paramname">arr</td><td>缓存数组名 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00060">60</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga1a4606e6ed271c585d431d43acfbfd02"></a><!-- doxytag: member="dcseq.h::dcseq_pr1" ref="ga1a4606e6ed271c585d431d43acfbfd02" args="(type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pr1</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;int (*)(type *)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>单参数回调函数指针类型 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>节点类型 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00072">72</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gadd479f30e6ab346585935f56bd7459a9"></a><!-- doxytag: member="dcseq.h::dcseq_pr2" ref="gadd479f30e6ab346585935f56bd7459a9" args="(type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pr2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;int (*)(type *, type *)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>双参数回调函数指针类型 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>节点类型 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00073">73</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gab0d5ab66eaae015aec90fd350b9eae09"></a><!-- doxytag: member="dcseq.h::dcseq_check" ref="gab0d5ab66eaae015aec90fd350b9eae09" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_check</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_check((<span class="keywordtype">char</span>*)((head)-&gt;first),   \
                  (<span class="keywordtype">char</span>*)((head)-&gt;last),    \
                  (<span class="keywordtype">char</span>*)((head)-&gt;end),     \
                  (<span class="keywordtype">char</span>*)((head)-&gt;base))
</pre></div>
<p>检查表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">DCSEQ_CHECK_PASS</td><td>0 正常 </td></tr>
    <tr><td class="paramname">DCSEQ_CHECK_INVALID</td><td>1 无效缓存 </td></tr>
    <tr><td class="paramname">DCSEQ_CHECK_OVERFLOW</td><td>2 溢出 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00099">99</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga9f0e8604b0bc82cf270a109858916206"></a><!-- doxytag: member="dcseq.h::dcseq_reset" ref="ga9f0e8604b0bc82cf270a109858916206" args="(head, _base, _first, _last, _end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_reset</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {(head)-&gt;base = (_base);         \
        (head)-&gt;first = (_first);       \
        (head)-&gt;last = (_last);         \
        (head)-&gt;end = (_end);           \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>重置表头 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_base</td><td>缓存基址 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_first</td><td>表首节点 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_last</td><td>表尾节点 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>缓存终止处 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00114">114</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga701f256d0417a216e24aba367299d21d"></a><!-- doxytag: member="dcseq.h::dcseq_init" ref="ga701f256d0417a216e24aba367299d21d" args="(type, head, base, size, _first)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_init</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">size, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_first&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga9f0e8604b0bc82cf270a109858916206" title="重置表头">dcseq_reset</a>(head, (type *)(base),               \
                (type *)(base) + (_first),          \
                (type *)(base) + (_first),          \
                (type *)(base) + (size))            \
</pre></div>
<p>初始化表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>缓存基址 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>缓存长度(节点容量) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_first</td><td>起始位置 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd>DCSEQ_INIT_ARRAY </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00131">131</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gac17f58b3615d1aa47f9b7e7f4a65245b"></a><!-- doxytag: member="dcseq.h::dcseq_init_serial" ref="gac17f58b3615d1aa47f9b7e7f4a65245b" args="(type, head, base, size, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_init_serial</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">size, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga9f0e8604b0bc82cf270a109858916206" title="重置表头">dcseq_reset</a>(head, (type *)(base), (type *)(base),   \
                (type *)(base) + (cnt),                 \
                (type *)(base) + (size))
</pre></div>
<p>作为序列来初始化表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>缓存基址 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>缓存长度(节点容量) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>序列长度 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">//将dclnk链表通过序列化来进行堆排序</span>
    <a class="code" href="struct____dclnk__node.html" title="双向环形链表节点">dclnk_head</a>* alives = &amp;bulltes.alive_list;
    <span class="keywordflow">if</span> (<a class="code" href="group___xE5_x8F_x8C_xE5_x90_x91_xE7_x8E_xAF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga625abc40f57fd4e8c00e9b64fa095435" title="判断表是否可以排序">dclnk_sortable</a>(alives)) {
        Bullet* buf[MAX_BULLETS];
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa10646448a570409afa332c4715bbc86" title="初始化序列">DCSEQ_INIT_SERIAL</a>(<span class="keywordtype">int</span>, &amp;seq_head, buf, list_cnt);
        <a class="code" href="group___xE5_x8F_x8C_xE5_x90_x91_xE7_x8E_xAF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga4c8e23b2ed6f6855d4c43b02c0036e12" title="表的序列化">dclnk_serialize</a>(alives, buf, Bullet, alive_node);
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>(Bullet, &amp;head, <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head),
                        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;seq_head),
                        CompareBulletAlive);
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04" title="对最大堆进行排序">dcseq_sort_heap</a>(Bullet, &amp;head, <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head),
                        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;seq_head),
                        CompareBulletAlive);
        <a class="code" href="group___xE5_x8F_x8C_xE5_x90_x91_xE7_x8E_xAF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#gae8cc4e2839f2cef62d6fb8925f271308" title="表的反序列化">dclnk_deserialize</a>(alives, <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae6ed56f7e82b2e748f64eee7ad4f2db2" title="获得表的缓存基址">dcseq_base</a>(&amp;seq_head),
                        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaedbaf43349facc54fd28d5c3ac6dec95" title="获取表的节点总数">dcseq_count</a>(&amp;seq_head),
                        Bullet, alive_node);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa10646448a570409afa332c4715bbc86" title="初始化序列">DCSEQ_INIT_SERIAL</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00166">166</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga52767fda1e9acae34cafd48067edfecc"></a><!-- doxytag: member="dcseq.h::DCSEQ_INIT" ref="ga52767fda1e9acae34cafd48067edfecc" args="(type, head, arr, _first)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DCSEQ_INIT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">arr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_first&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_init(type, head, arr, count_of(arr), _first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>初始化表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>缓存数组 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_first</td><td>起始位置 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf36c9494198335d502044cabf6953610" title="type类型表头">dcseq_head</a>(<span class="keywordtype">int</span>) h;
    <span class="keywordtype">int</span> buf[100];

    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga52767fda1e9acae34cafd48067edfecc" title="初始化表">DCSEQ_INIT</a>(<span class="keywordtype">int</span>, &amp;h, buf, 0);
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga701f256d0417a216e24aba367299d21d" title="初始化表">dcseq_init</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00187">187</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaa10646448a570409afa332c4715bbc86"></a><!-- doxytag: member="dcseq.h::DCSEQ_INIT_SERIAL" ref="gaa10646448a570409afa332c4715bbc86" args="(type, head, arr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DCSEQ_INIT_SERIAL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">arr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_init_serial(type, head, arr, count_of(arr), cnt)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>初始化序列 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>缓存数组 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>序列长度 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf36c9494198335d502044cabf6953610" title="type类型表头">dcseq_head</a>(DATA*) h;
    DATA* buf[100];

    <a class="code" href="group___xE5_x8F_x8C_xE5_x90_x91_xE7_x8E_xAF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga4c8e23b2ed6f6855d4c43b02c0036e12" title="表的序列化">dclnk_serialize</a>(&amp;lst, buf, DATA, node);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa10646448a570409afa332c4715bbc86" title="初始化序列">DCSEQ_INIT_SERIAL</a>(<span class="keywordtype">int</span>, &amp;h, buf, <a class="code" href="group___xE5_x8F_x8C_xE5_x90_x91_xE7_x8E_xAF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#gaa4d3dc1196aa9fe3c0c044503323ac15" title="统计表的节点数量">dclnk_count</a>(&amp;lst));
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac17f58b3615d1aa47f9b7e7f4a65245b" title="作为序列来初始化表">dcseq_init_serial</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00207">207</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae233ba04d3c32eb008578f5a8491d2bd"></a><!-- doxytag: member="dcseq.h::dcseq_clear" ref="gae233ba04d3c32eb008578f5a8491d2bd" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_clear</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;((head)-&gt;last = (head)-&gt;first = (head)-&gt;base)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>清空表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00215">215</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae6ed56f7e82b2e748f64eee7ad4f2db2"></a><!-- doxytag: member="dcseq.h::dcseq_base" ref="gae6ed56f7e82b2e748f64eee7ad4f2db2" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_base</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;((head)-&gt;base)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获得表的缓存基址 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>char* 返回基地址 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00224">224</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaedbaf43349facc54fd28d5c3ac6dec95"></a><!-- doxytag: member="dcseq.h::dcseq_count" ref="gaedbaf43349facc54fd28d5c3ac6dec95" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_count</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;__dcseq_count(dcseq_size(head), (head)-&gt;last - (head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取表的节点总数 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>size_t 返回节点总数 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00232">232</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gade232607f6d9ee8609f8e5e3aebccd7a"></a><!-- doxytag: member="dcseq.h::dcseq_size" ref="gade232607f6d9ee8609f8e5e3aebccd7a" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_size</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;((size_t)((head)-&gt;end - (head)-&gt;base))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取表的缓存长度 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>size_t 返回缓存长度 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga6bbe2621089c0d1266e48dd6cc3cce05" title="获取表的节点容量">dcseq_capacity</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00247">247</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga6bbe2621089c0d1266e48dd6cc3cce05"></a><!-- doxytag: member="dcseq.h::dcseq_capacity" ref="ga6bbe2621089c0d1266e48dd6cc3cce05" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_capacity</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;(dcseq_size(head) - 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取表的节点容量 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>size_t 返回节点容量 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gade232607f6d9ee8609f8e5e3aebccd7a" title="获取表的缓存长度">dcseq_size</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00256">256</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga54d4be34663a21a7eff83ca2f9a0b69b"></a><!-- doxytag: member="dcseq.h::dcseq_remain" ref="ga54d4be34663a21a7eff83ca2f9a0b69b" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_remain</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;(dcseq_capacity(head) - dcseq_count(head))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取表的剩余容量 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>size_t 返回剩余容量 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac8928e1e92dfafbc3e823d4edf7d79bd" title="判断表是否已满">dcseq_full</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b0a7a36f573ff453f05a29b1f49dc0d" title="判断表是否为空">dcseq_empty</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00265">265</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga3b0a7a36f573ff453f05a29b1f49dc0d"></a><!-- doxytag: member="dcseq.h::dcseq_empty" ref="ga3b0a7a36f573ff453f05a29b1f49dc0d" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_empty</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;__dcseq_empty((char*)((head)-&gt;first), (char*)((head)-&gt;last))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>判断表是否为空 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac8928e1e92dfafbc3e823d4edf7d79bd" title="判断表是否已满">dcseq_full</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga54d4be34663a21a7eff83ca2f9a0b69b" title="获取表的剩余容量">dcseq_remain</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00276">276</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gac8928e1e92dfafbc3e823d4edf7d79bd"></a><!-- doxytag: member="dcseq.h::dcseq_full" ref="gac8928e1e92dfafbc3e823d4edf7d79bd" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_full</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_full((<span class="keywordtype">char</span>*)((head)-&gt;base), (<span class="keywordtype">char</span>*)((head)-&gt;first),    \
                 (<span class="keywordtype">char</span>*)((head)-&gt;end), (<span class="keywordtype">char</span>*)((head)-&gt;last + 1))
</pre></div>
<p>判断表是否已满 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b0a7a36f573ff453f05a29b1f49dc0d" title="判断表是否为空">dcseq_empty</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga54d4be34663a21a7eff83ca2f9a0b69b" title="获取表的剩余容量">dcseq_remain</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00293">293</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga3282309a688e1a002cc0786a5791d9c7"></a><!-- doxytag: member="dcseq.h::dcseq_singular" ref="ga3282309a688e1a002cc0786a5791d9c7" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_singular</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_singular((<span class="keywordtype">char</span>*)((head)-&gt;base), \
                     (<span class="keywordtype">char</span>*)((head)-&gt;last), \
                     (<span class="keywordtype">char</span>*)((head)-&gt;end),  \
                     (<span class="keywordtype">char</span>*)((head)-&gt;first + 1))
</pre></div>
<p>判断表是否只有单个节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00312">312</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga37a0ad76a4d6e0e445e96215c7331739"></a><!-- doxytag: member="dcseq.h::dcseq_sortable" ref="ga37a0ad76a4d6e0e445e96215c7331739" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_sortable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;__dcseq_sortable(dcseq_size(head), (head)-&gt;last - (head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>判断表是否可以被排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00333">333</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gacf351a975e83708d43977233acfcc223"></a><!-- doxytag: member="dcseq.h::dcseq_insertable" ref="gacf351a975e83708d43977233acfcc223" args="(head, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_insertable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_insertable(<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gade232607f6d9ee8609f8e5e3aebccd7a" title="获取表的缓存长度">dcseq_size</a>(head), \
        (head)-&gt;last - (head)-&gt;first, (<span class="keywordtype">int</span>)(cnt))
</pre></div>
<p>判断表是否可以插入一定数量的节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>插入的节点数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00350">350</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga291b691ec419c75159823ecae81d8587"></a><!-- doxytag: member="dcseq.h::dcseq_serialable" ref="ga291b691ec419c75159823ecae81d8587" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_serialable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;__dcseq_serialable((char*)((head)-&gt;first), (char*)((head)-&gt;last))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>判断表是否可以序列化 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00367">367</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga27c8c83b6f266c1d9ffa8ed8c0aaac21"></a><!-- doxytag: member="dcseq.h::dcseq_copyable" ref="ga27c8c83b6f266c1d9ffa8ed8c0aaac21" args="(dst, src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_copyable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_copyable((<span class="keywordtype">char</span>*)(dst), (<span class="keywordtype">char</span>*)(src),    \
                     (<span class="keywordtype">char</span>*)((src)-&gt;first),         \
                     (<span class="keywordtype">char</span>*)((src)-&gt;last),          \
                     (<span class="keywordtype">char</span>*)((src)-&gt;base),          \
                     (<span class="keywordtype">char</span>*)((src)-&gt;end),           \
                     (<span class="keywordtype">char</span>*)((dst)-&gt;base),          \
                     (<span class="keywordtype">char</span>*)((dst)-&gt;end))
</pre></div>
<p>判断源表是否可以深拷贝到目标表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dst</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>源表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00384">384</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gacc42c81d740d37cc0d1cfd667269f7e2"></a><!-- doxytag: member="dcseq.h::dcseq_at" ref="gacc42c81d740d37cc0d1cfd667269f7e2" args="(type, head, index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_at</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">index&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_at(type, (head)-&gt;base, (head)-&gt;end, (head)-&gt;first + (index))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>根据正向索引获取迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>指定索引 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回对应的迭代器 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00415">415</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga39ffa37877fb5f868b548f2ea6a64d6c"></a><!-- doxytag: member="dcseq.h::dcseq_reverse_at" ref="ga39ffa37877fb5f868b548f2ea6a64d6c" args="(type, head, index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_reverse_at</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">index&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_reverse_at(type, (head)-&gt;base, (head)-&gt;end, \
                        (head)-&gt;last - ((index) + 1))
</pre></div>
<p>根据逆向索引获取迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>指定索引 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回对应的迭代器 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00434">434</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gac284b872fa66fca2270c8efedb3a2a61"></a><!-- doxytag: member="dcseq.h::__dcseq_reverse_at" ref="gac284b872fa66fca2270c8efedb3a2a61" args="(type, base, end, dest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_reverse_at</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">((type *)__do_dcseq_reverse_at((<span class="keywordtype">char</span>*)(base), \
                        (<span class="keywordtype">char</span>*)(end), (<span class="keywordtype">char</span>*)(dest)))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00438">438</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga7c7c54b5a59f69d9695c4fe01a1c26a2"></a><!-- doxytag: member="dcseq.h::dcseq_index_of" ref="ga7c7c54b5a59f69d9695c4fe01a1c26a2" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_index_of</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_index_of(dcseq_size(head), (itr) - (head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取迭代器对应的正向索引 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr</td><td>迭代器 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回正向索引 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00456">456</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gafcad503fcb29e86a6edc09da7e4fd830"></a><!-- doxytag: member="dcseq.h::dcseq_reverse_index_of" ref="gafcad503fcb29e86a6edc09da7e4fd830" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_reverse_index_of</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_reverse_index_of(dcseq_size(head), (head)-&gt;last - (itr))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取迭代器对应的逆向索引 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr</td><td>迭代器 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回逆向索引 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00471">471</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga31835b5d37c85a1d9a7c2b0cbc753123"></a><!-- doxytag: member="dcseq.h::dcseq_exist" ref="ga31835b5d37c85a1d9a7c2b0cbc753123" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_exist</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_exist((head)-&gt;base, (head)-&gt;first, (head)-&gt;last, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>判断迭代器对应的节点是否存在于表中 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr</td><td>迭代器 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>int 返回结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>真 </td></tr>
    <tr><td class="paramname">0</td><td>假 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00488">488</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga8d57f3606b55d59dc7cfcf80203669bb"></a><!-- doxytag: member="dcseq.h::__dcseq_exist" ref="ga8d57f3606b55d59dc7cfcf80203669bb" args="(base, first, last, end, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_exist</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__do_dcseq_exist((<span class="keywordtype">char</span>*)(base), (<span class="keywordtype">char</span>*)(first), \
        (<span class="keywordtype">char</span>*)(last), (<span class="keywordtype">char</span>*)(end), (<span class="keywordtype">char</span>*)(itr))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00491">491</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5ec04ebafe9d653d3be80562f5b772eb"></a><!-- doxytag: member="dcseq.h::dcseq_distance" ref="ga5ec04ebafe9d653d3be80562f5b772eb" args="(head, first, last)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_distance</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_distance(dcseq_size(head), (last) - (first))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>计算两个节点的迭代距离 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>首节点 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>尾节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>以索引为例，2到4的距离是4 (4-2+1=3) </dd></dl>
<dl class="return"><dt><b>返回:</b></dt><dd>size_t 返回距离 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00515">515</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2c7dab6b2be2e3a8d6bd95c7b06791ae"></a><!-- doxytag: member="dcseq.h::dcseq_insert" ref="ga2c7dab6b2be2e3a8d6bd95c7b06791ae" args="(type, head, pos, newly)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_insert</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pos, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">newly&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>在指定位置插入节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pos</td><td>插入位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newly</td><td>新节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>插入完成之后，则pos迭代器失效 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00532">532</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5620ad4a15ef8bb65f58b34b57be17b9"></a><!-- doxytag: member="dcseq.h::dcseq_erase" ref="ga5620ad4a15ef8bb65f58b34b57be17b9" args="(type, head, pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_erase</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pos&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>删除指定位置的节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>删除位置 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>删除后pos迭代器需要更新 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00591">591</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga81be7d5f42effc8658ab6fd93ec2f165"></a><!-- doxytag: member="dcseq.h::dcseq_inserts" ref="ga81be7d5f42effc8658ab6fd93ec2f165" args="(type, head, pos, src, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_inserts</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pos, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>在指定位置连续插入多个节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pos</td><td>插入位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>新节点缓存 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>新节点数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>插入完成之后，则pos迭代器失效 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) p = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacc42c81d740d37cc0d1cfd667269f7e2" title="根据正向索引获取迭代器">dcseq_at</a>(&amp;head, 8);
    <span class="comment">// 判断是否可以插入cnt个节点</span>
    if (<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacf351a975e83708d43977233acfcc223" title="判断表是否可以插入一定数量的节点">dcseq_insertable</a>(&amp;head, cnt)) {
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga81be7d5f42effc8658ab6fd93ec2f165" title="在指定位置连续插入多个节点">dcseq_inserts</a>(<span class="keywordtype">int</span>, &amp;head, p, buf, cnt);
    }
</pre></div> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00648">648</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga8a1d8b81cb254000f03e129143c80a8d"></a><!-- doxytag: member="dcseq.h::dcseq_erases" ref="ga8a1d8b81cb254000f03e129143c80a8d" args="(type, head, _begin, _end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_erases</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                         \
        type * _q_e = (type *)(_end);                                       \
        type * _q_f = (type *)(_begin);                                     \
        type * _q_F = (head)-&gt;first;                                        \
        type * _q_L = (head)-&gt;last;                                         \
        type * _q_E = (head)-&gt;end;                                          \
        type * _q_B = (head)-&gt;base;                                         \
        <span class="keywordflow">if</span> (_q_f &lt; _q_L) {                                                  \
            memcpy(_q_f, _q_e, <span class="keyword">sizeof</span>(type) * (_q_e - _q_f));               \
            (head)-&gt;last = _q_L - (_q_e - _q_f);                            \
        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (_q_e &lt; _q_E) {                                           \
            memmove(_q_F + (_q_e - _q_f), _q_F,                             \
                    <span class="keyword">sizeof</span>(type) * (_q_f - _q_F));                          \
            (head)-&gt;first = _q_F + (_q_e - _q_f);                           \
        } <span class="keywordflow">else</span> {                                                            \
            <span class="keywordtype">size_t</span> _q_n = _q_E - _q_f;                                      \
            <span class="keywordtype">size_t</span> _q_m = _q_L - _q_e;                                      \
            <span class="keywordflow">if</span> (_q_n &gt; _q_m) {                                              \
                memcpy(_q_f, _q_e, <span class="keyword">sizeof</span>(type) * _q_m);                    \
                (head)-&gt;last = _q_f + _q_m;                                 \
            } <span class="keywordflow">else</span> {                                                        \
                memcpy(_q_f, _q_e, <span class="keyword">sizeof</span>(type) * _q_n);                    \
                memcpy(_q_B, _q_e + _q_n, <span class="keyword">sizeof</span>(type) * (_q_m - _q_n));    \
                (head)-&gt;last = _q_B + (_q_m - _q_n);                        \
            }                                                               \
        }                                                                   \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>连续删除指定位置的多个节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">end</td><td>终止位置 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00692">692</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga82383642bb62bc1a946511d8d249cfac"></a><!-- doxytag: member="dcseq.h::dcseq_splice" ref="ga82383642bb62bc1a946511d8d249cfac" args="(type, dst, pos, src, _first, _last)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_splice</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pos, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_last&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {               \
        type * _q1_l = (_last);                                             \
        type * _q1_f = (_first);                                            \
        type * _q1_p = (pos);                                               \
        type * _q1_B = (src)-&gt;base;                                         \
        type * _q1_E = (src)-&gt;end;                                          \
        <span class="keywordtype">size_t</span> _q_cs[2] = {0, 0};                                           \
        type * _q_ss[2] = {_q1_f, _q1_B};                                   \
        <span class="keywordtype">int</span> _q1_i, _q1_k;                                                   \
        <span class="keywordflow">if</span> (dst == src) <span class="keywordflow">break</span>;                                              \
        <span class="keywordflow">if</span> (_q1_f &lt;= _q1_l)                                                 \
            _q_cs[0] = _q1_l - _q1_f + 1;                                   \
        <span class="keywordflow">else</span> {                                                              \
            _q_cs[0] = _q1_E - _q1_f;                                       \
            _q_cs[1] = _q1_l - _q1_B + 1;                                   \
            _q1_i = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7c7c54b5a59f69d9695c4fe01a1c26a2" title="获取迭代器对应的正向索引">dcseq_index_of</a>(dst, _q1_p) + _q_cs[0];                  \
        }                                                                   \
        <span class="keywordflow">for</span> (_q1_k = 0; _q1_k &lt; 2 &amp;&amp; _q_cs[_q1_k]; ++_q1_k) {               \
            <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga81be7d5f42effc8658ab6fd93ec2f165" title="在指定位置连续插入多个节点">dcseq_inserts</a>(type, dst, _q1_p, _q_ss[_q1_k], _q_cs[_q1_k]);    \
            <span class="keywordflow">if</span> (_q_cs[1])                                                   \
                _q1_p = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacc42c81d740d37cc0d1cfd667269f7e2" title="根据正向索引获取迭代器">dcseq_at</a>(type, dst, _q1_i);                         \
        }                                                                   \
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga8a1d8b81cb254000f03e129143c80a8d" title="连续删除指定位置的多个节点">dcseq_erases</a>(type, src, _q1_f, __dcseq_next(_q1_B, _q1_E, _q1_l));  \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>移接一段序列[first, last]到目标位置。本方法只可以在不同的序表之间 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">dst</td><td>目标表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pos</td><td>指定位置 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">src</td><td>源表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">_first</td><td>起始位置，包括_first </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">_last</td><td>末尾位置，包括_last </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00730">730</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga3183dcaa0721b314454852a5d6b934d6"></a><!-- doxytag: member="dcseq.h::dcseq_appends" ref="ga3183dcaa0721b314454852a5d6b934d6" args="(type, head, src, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_appends</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                        \
        <span class="keywordtype">size_t</span> _q_c = (cnt);                                            \
        type * _q_s = (type *)(src);                                    \
        type * _q_E = (head)-&gt;end;                                      \
        type * _q_B = (head)-&gt;base;                                     \
        type * _q_L = (head)-&gt;last;                                     \
        <span class="keywordflow">if</span> (_q_L + _q_c &gt; _q_E) {                                       \
            <span class="keywordtype">size_t</span> _q_n = _q_E - _q_L;                                  \
            memcpy(_q_L, _q_s, <span class="keyword">sizeof</span>(type) * _q_n);                    \
            memcpy(_q_B, _q_s + _q_n, <span class="keyword">sizeof</span>(type) * (_q_c - _q_n));    \
            (head)-&gt;last = _q_B + (_q_c - _q_n);                        \
        } <span class="keywordflow">else</span> {                                                        \
            memcpy(_q_L, _q_s, <span class="keyword">sizeof</span>(type) * _q_c);                    \
            _q_L += _q_c;                                               \
            <span class="keywordflow">if</span> (_q_L == _q_E)                                           \
                _q_L = _q_B;                                            \
            (head)-&gt;last = _q_L;                                        \
        }                                                               \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在表尾添加多个节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>新节点缓存 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>新节点数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 判断是否可以插入cnt个节点</span>
    <span class="keywordflow">if</span> (<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacf351a975e83708d43977233acfcc223" title="判断表是否可以插入一定数量的节点">dcseq_insertable</a>(&amp;head, cnt)) {
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3183dcaa0721b314454852a5d6b934d6" title="在表尾添加多个节点">dcseq_appends</a>(<span class="keywordtype">int</span>, &amp;head, buf, cnt);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga261cb5811d552285e5848042c5f906a6" title="在表尾添加新节点">dcseq_append</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00771">771</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga261cb5811d552285e5848042c5f906a6"></a><!-- doxytag: member="dcseq.h::dcseq_append" ref="ga261cb5811d552285e5848042c5f906a6" args="(head, newly)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_append</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">newly&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*((head)-&gt;last++) = (newly))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>在表尾添加新节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newly</td><td>新节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3183dcaa0721b314454852a5d6b934d6" title="在表尾添加多个节点">dcseq_appends</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00798">798</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaf357cdeb311d5d2d7609c81c97c6a744"></a><!-- doxytag: member="dcseq.h::dcseq_copy" ref="gaf357cdeb311d5d2d7609c81c97c6a744" args="(type, dst, src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_copy</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                 \
        type * _q_B = (src)-&gt;base;                                      \
        type * _q_F = (src)-&gt;first;                                     \
        type * _q_L = (src)-&gt;last;                                      \
        type * _q_E = (src)-&gt;end;                                       \
        type * _q_dB = (dst)-&gt;base;                                     \
        <span class="keywordflow">if</span> (_q_F &lt; _q_L) {                                              \
            <span class="keywordtype">size_t</span> _q_c = _q_L - _q_F;                                  \
            memcpy(_q_dB, _q_F, <span class="keyword">sizeof</span>(type) * (_q_L - _q_F));          \
            (dst)-&gt;last = _q_dB + _q_c;                                 \
        } <span class="keywordflow">else</span> {                                                        \
            <span class="keywordtype">size_t</span> _q_c = _q_E - _q_F;                                  \
            memcpy(_q_dB, _q_F, <span class="keyword">sizeof</span>(type) * _q_c);                   \
            memcpy(_q_dB + _q_c, _q_B, <span class="keyword">sizeof</span>(type) * (_q_L - _q_B));   \
            (dst)-&gt;last = _q_dB + (_q_c + (_q_L - _q_B));               \
        }                                                               \
        (dst)-&gt;first = _q_dB;                                           \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>深拷贝源表的节点到目标表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>目标表 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>源表 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 判断是否可以从src拷贝到dst</span>
    <span class="keywordflow">if</span> (<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga27c8c83b6f266c1d9ffa8ed8c0aaac21" title="判断源表是否可以深拷贝到目标表">dcseq_copyable</a>(&amp;dst, &amp;src)) {
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf357cdeb311d5d2d7609c81c97c6a744" title="深拷贝源表的节点到目标表">dcseq_copy</a>(<span class="keywordtype">int</span>, &amp;dst, &amp;src);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga27c8c83b6f266c1d9ffa8ed8c0aaac21" title="判断源表是否可以深拷贝到目标表">dcseq_copyable</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00816">816</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga642f3253dbeeff4f4eba5c1893204a2a"></a><!-- doxytag: member="dcseq.h::dcseq_push_front" ref="ga642f3253dbeeff4f4eba5c1893204a2a" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_push_front</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((type *)dcseq_dec(head, (head)-&gt;first))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取指向表首插入节点位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 在表首插入i</span>
    *<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga642f3253dbeeff4f4eba5c1893204a2a" title="获取指向表首插入节点位置的迭代器">dcseq_push_front</a>(&amp;head) = i;
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga308642d86d07048a845099ac670a3acb" title="获取指向表首节点位置的迭代器">dcseq_pop_front</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe68987046efd89e34fd3be135ae3892" title="获取指向表尾插入节点位置的迭代器">dcseq_push_back</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaacd568e3509c4e7996aa15b60602ad1e" title="获取指向表尾节点位置的迭代器">dcseq_pop_back</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00847">847</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gabe68987046efd89e34fd3be135ae3892"></a><!-- doxytag: member="dcseq.h::dcseq_push_back" ref="gabe68987046efd89e34fd3be135ae3892" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_push_back</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_inc_later(type, head, (head)-&gt;last)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取指向表尾插入节点位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 在表尾插入i</span>
    *<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe68987046efd89e34fd3be135ae3892" title="获取指向表尾插入节点位置的迭代器">dcseq_push_back</a>(&amp;head) = i;
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaacd568e3509c4e7996aa15b60602ad1e" title="获取指向表尾节点位置的迭代器">dcseq_pop_back</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga642f3253dbeeff4f4eba5c1893204a2a" title="获取指向表首插入节点位置的迭代器">dcseq_push_front</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga308642d86d07048a845099ac670a3acb" title="获取指向表首节点位置的迭代器">dcseq_pop_front</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00862">862</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga308642d86d07048a845099ac670a3acb"></a><!-- doxytag: member="dcseq.h::dcseq_pop_front" ref="ga308642d86d07048a845099ac670a3acb" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pop_front</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_inc_later(type, head, (head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取指向表首节点位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 移除表首节点</span>
    <span class="keywordtype">int</span> d = *<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga308642d86d07048a845099ac670a3acb" title="获取指向表首节点位置的迭代器">dcseq_pop_front</a>(&amp;head);
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga642f3253dbeeff4f4eba5c1893204a2a" title="获取指向表首插入节点位置的迭代器">dcseq_push_front</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe68987046efd89e34fd3be135ae3892" title="获取指向表尾插入节点位置的迭代器">dcseq_push_back</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaacd568e3509c4e7996aa15b60602ad1e" title="获取指向表尾节点位置的迭代器">dcseq_pop_back</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00877">877</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaacd568e3509c4e7996aa15b60602ad1e"></a><!-- doxytag: member="dcseq.h::dcseq_pop_back" ref="gaacd568e3509c4e7996aa15b60602ad1e" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pop_back</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((type *)dcseq_dec(head, (head)-&gt;last))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取指向表尾节点位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 移除表尾节点</span>
    <span class="keywordtype">int</span> d = *<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaacd568e3509c4e7996aa15b60602ad1e" title="获取指向表尾节点位置的迭代器">dcseq_pop_back</a>(&amp;head);
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe68987046efd89e34fd3be135ae3892" title="获取指向表尾插入节点位置的迭代器">dcseq_push_back</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga642f3253dbeeff4f4eba5c1893204a2a" title="获取指向表首插入节点位置的迭代器">dcseq_push_front</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga308642d86d07048a845099ac670a3acb" title="获取指向表首节点位置的迭代器">dcseq_pop_front</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00892">892</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5349cc1a47edf529216a59099a05d49a"></a><!-- doxytag: member="dcseq.h::dcseq_iter_replace" ref="ga5349cc1a47edf529216a59099a05d49a" args="(victim, newly)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_replace</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">victim, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">newly&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(victim) = (newly))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>用新节点替换目标节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">victim</td><td>受害目标节点 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">newly</td><td>新节点 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00901">901</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gadf79e91cf3ffc3a278e24984dc234c58"></a><!-- doxytag: member="dcseq.h::__dcseq_iter_swap" ref="gadf79e91cf3ffc3a278e24984dc234c58" args="(type, a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_iter_swap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {\
    type _q_t = *(a); *(a) = *(b); *(b) = _q_t; } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00903">903</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga7f3dac7d3c6f0814b436407b0adce396"></a><!-- doxytag: member="dcseq.h::dcseq_iter_swap" ref="ga7f3dac7d3c6f0814b436407b0adce396" args="(type, a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_swap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {        \
        type * _q_b = (b); type * _q_a = (a);   \
        __dcseq_iter_swap(type, _q_a, _q_b);    \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>用新节点替换目标节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>第一个节点 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td>第二个节点 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00913">913</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5a2034fe041f6afb077925c7679fb424"></a><!-- doxytag: member="dcseq.h::dcseq_replace" ref="ga5a2034fe041f6afb077925c7679fb424" args="(victim, newly)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_replace</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">victim, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">newly&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(victim) = *(newly))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>用新表头替换目标表头 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">victim</td><td>受害目标表头 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">newly</td><td>新表头 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00924">924</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga9312f46643026c0a60f7b3ae57a9a6ed"></a><!-- doxytag: member="dcseq.h::dcseq_swap" ref="ga9312f46643026c0a60f7b3ae57a9a6ed" args="(type, a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_swap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf36c9494198335d502044cabf6953610" title="type类型表头">dcseq_head</a>(type) t = *(a);  \
        *(a) = *(b); *(b) = t;      \
    } while (0)
</pre></div>
<p>交换两个表头 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>第一个表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td>第二个表头 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00933">933</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaf56b4267ee35cb8d76cc752efed76e81"></a><!-- doxytag: member="dcseq.h::dcseq_front" ref="gaf56b4267ee35cb8d76cc752efed76e81" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_front</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;((head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到表首节点 </p>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回节点 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga302b3de503cacadd24e475a0e21d401b" title="得到表首节点">dcseq_back</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00944">944</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga302b3de503cacadd24e475a0e21d401b"></a><!-- doxytag: member="dcseq.h::dcseq_back" ref="ga302b3de503cacadd24e475a0e21d401b" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_back</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;__dcseq_back((head)-&gt;base, (head)-&gt;last, (head)-&gt;end)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到表首节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回节点 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf56b4267ee35cb8d76cc752efed76e81" title="得到表首节点">dcseq_front</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00953">953</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gafd47b3c616bf83cf88e38fc6afcad580"></a><!-- doxytag: member="dcseq.h::dcseq_begin" ref="gafd47b3c616bf83cf88e38fc6afcad580" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_begin</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;dcseq_front(head)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向正向起始位置的迭代器 </p>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 遍历序表</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) i = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head);
    while (i != e) {
        printf(<span class="stringliteral">&quot;[%d]=%d\n&quot;</span>, <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7c7c54b5a59f69d9695c4fe01a1c26a2" title="获取迭代器对应的正向索引">dcseq_index_of</a>(&amp;head, i), *i);
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga42572fa27232bd6618cb30487fa0be60" title="迭代器递增">dcseq_inc</a>(i);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9" title="得到指向逆向起始位置的迭代器">dcseq_rbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00975">975</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaed55996a20f8e2bed24409fd5319ab96"></a><!-- doxytag: member="dcseq.h::dcseq_end" ref="gaed55996a20f8e2bed24409fd5319ab96" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_end</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;((head)-&gt;last)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向正向终止位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9" title="得到指向逆向起始位置的迭代器">dcseq_rbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00984">984</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga55d25c1e2a956becd038e3a4bcecfa1c"></a><!-- doxytag: member="dcseq.h::dcseq_end_of" ref="ga55d25c1e2a956becd038e3a4bcecfa1c" args="(head, last)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_end_of</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_next(head, last)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向当前节点的正向终止位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>当前节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回终止迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l00994">994</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaf70ac85655acd46c15342ef107982ae9"></a><!-- doxytag: member="dcseq.h::dcseq_rbegin" ref="gaf70ac85655acd46c15342ef107982ae9" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_rbegin</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;dcseq_back(head)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向逆向起始位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01003">1003</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gafdbfa6d98f95af2063eac747ddfe9676"></a><!-- doxytag: member="dcseq.h::dcseq_rend" ref="gafdbfa6d98f95af2063eac747ddfe9676" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_rend</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;dcseq_prev(head, (head)-&gt;first)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向逆向起始位置的迭代器 </p>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9" title="得到指向逆向起始位置的迭代器">dcseq_rbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01011">1011</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5b7a5959a31b5a4ddbe9d6e65ece1544"></a><!-- doxytag: member="dcseq.h::dcseq_rend_of" ref="ga5b7a5959a31b5a4ddbe9d6e65ece1544" args="(head, rlast)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_rend_of</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">rlast&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_prev(head, rlast)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到指向当前节点的逆向终止位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rlast</td><td>当前节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回终止迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9" title="得到指向逆向起始位置的迭代器">dcseq_rbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01021">1021</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2dfa4c22532771b34aeb2f5038fe1c88"></a><!-- doxytag: member="dcseq.h::dcseq_next" ref="ga2dfa4c22532771b34aeb2f5038fe1c88" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_next</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_next((head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取当前节点的后继节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr</td><td>当前节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回后继节点 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga06745f62cd24f19e86230e73404026fe" title="获取当前节点的前驱节点">dcseq_prev</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01031">1031</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga06745f62cd24f19e86230e73404026fe"></a><!-- doxytag: member="dcseq.h::dcseq_prev" ref="ga06745f62cd24f19e86230e73404026fe" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_prev</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_prev((head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>获取当前节点的前驱节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr</td><td>当前节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回前驱节点 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2dfa4c22532771b34aeb2f5038fe1c88" title="获取当前节点的后继节点">dcseq_next</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01045">1045</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gabfbaee41c13bae986253b8e4e77d8028"></a><!-- doxytag: member="dcseq.h::dcseq_advance" ref="gabfbaee41c13bae986253b8e4e77d8028" args="(type, head, cur, dist)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_advance</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cur, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dist&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_advance(type, (head)-&gt;base, (head)-&gt;end, (type *)(cur) + (dist))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>给迭代器增加一段距离或减小一段距离 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cur</td><td>迭代器 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dist</td><td>增加的距离。正数时，表示增加；负数时，表示减小 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回新迭代器 </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01060">1060</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5f13da69cb54c7f5770916783cb17fb0"></a><!-- doxytag: member="dcseq.h::DCSEQ_NOT_END" ref="ga5f13da69cb54c7f5770916783cb17fb0" args="(itr, end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DCSEQ_NOT_END</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((itr) != (end))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代结束条件 </p>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) i = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head);
    while (<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga5f13da69cb54c7f5770916783cb17fb0" title="迭代结束条件">DCSEQ_NOT_END</a>(i, e)) {
        ......
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga42572fa27232bd6618cb30487fa0be60" title="迭代器递增">dcseq_inc</a>(&amp;head, i);
    }
</pre></div> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01100">1100</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gacbeb11dd8a7ba4d43d5e2e79ce685073"></a><!-- doxytag: member="dcseq.h::DCSEQ_NOT_REND" ref="gacbeb11dd8a7ba4d43d5e2e79ce685073" args="(itr, rend)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DCSEQ_NOT_REND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">rend&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((itr) != (rend))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>逆向迭代结束条件 </p>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafdbfa6d98f95af2063eac747ddfe9676" title="得到指向逆向起始位置的迭代器">dcseq_rend</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) i = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaf70ac85655acd46c15342ef107982ae9" title="得到指向逆向起始位置的迭代器">dcseq_rbegin</a>(&amp;head);
    while (<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gacbeb11dd8a7ba4d43d5e2e79ce685073" title="逆向迭代结束条件">DCSEQ_NOT_REND</a>(i, e)) {
        ......
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga835a40bc65b0348e544cbec9fac6b21f" title="迭代器递减">dcseq_dec</a>(&amp;head, i);
    }
</pre></div> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01101">1101</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga42572fa27232bd6618cb30487fa0be60"></a><!-- doxytag: member="dcseq.h::dcseq_inc" ref="ga42572fa27232bd6618cb30487fa0be60" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_inc</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_inc((head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器递增 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01147">1147</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga835a40bc65b0348e544cbec9fac6b21f"></a><!-- doxytag: member="dcseq.h::dcseq_dec" ref="ga835a40bc65b0348e544cbec9fac6b21f" args="(head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_dec</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_dec((head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器递减 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01148">1148</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga05ed4ffe76c677596202f75ba99b08af"></a><!-- doxytag: member="dcseq.h::dcseq_add" ref="ga05ed4ffe76c677596202f75ba99b08af" args="(type, head, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_add</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_add(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器增加 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>增加量 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01149">1149</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga39400aabf3e01c763c2dad7042136de5"></a><!-- doxytag: member="dcseq.h::dcseq_sub" ref="ga39400aabf3e01c763c2dad7042136de5" args="(type, head, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_sub</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_sub(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器减小 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>减小量 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01150">1150</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2e02f51a06ed45c02d7d1426e46dedfa"></a><!-- doxytag: member="dcseq.h::dcseq_inc_later" ref="ga2e02f51a06ed45c02d7d1426e46dedfa" args="(type, head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_inc_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_inc_later(type, (head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器后递增 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01152">1152</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gacbbb60170c5465e4b753f93684c43fbb"></a><!-- doxytag: member="dcseq.h::dcseq_dec_later" ref="gacbbb60170c5465e4b753f93684c43fbb" args="(type, head, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_dec_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_dec_later(type, (head)-&gt;base, (head)-&gt;end, itr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器后递减 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01155">1155</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga70206861e2a406862336cb2d96d36b49"></a><!-- doxytag: member="dcseq.h::dcseq_add_later" ref="ga70206861e2a406862336cb2d96d36b49" args="(type, head, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_add_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_add_later(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器后增加 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>增加量 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01158">1158</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gad45f2e3f82642762d7846f633f22d5b2"></a><!-- doxytag: member="dcseq.h::dcseq_sub_later" ref="gad45f2e3f82642762d7846f633f22d5b2" args="(type, head, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_sub_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dcseq_sub_later(type, (head)-&gt;base, (head)-&gt;end, itr, cnt)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>迭代器后减少 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">迭代器</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>减小量 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01161">1161</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga6f461507416d6a2ebb31276bdfe0bc14"></a><!-- doxytag: member="dcseq.h::__dcseq_inc_later" ref="ga6f461507416d6a2ebb31276bdfe0bc14" args="(type, base, end, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_inc_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">((type *)__do_dcseq_inc_later((<span class="keywordtype">char</span>*)(base), (<span class="keywordtype">char</span>*)(end), \
            (<span class="keywordtype">char</span>*)((itr) + 1), (<span class="keywordtype">char</span>*)(itr), (<span class="keywordtype">char</span>**)(&amp;(itr))))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01172">1172</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gabcd422df9f4375aeb51da6e81dba84cd"></a><!-- doxytag: member="dcseq.h::__dcseq_dec_later" ref="gabcd422df9f4375aeb51da6e81dba84cd" args="(type, base, end, itr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_dec_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">((type *)__do_dcseq_dec_later((<span class="keywordtype">char</span>*)(base), (<span class="keywordtype">char</span>*)((type *)(end) - 1), \
            (<span class="keywordtype">char</span>*)((itr) - 1), (<span class="keywordtype">char</span>*)(itr), (<span class="keywordtype">char</span>**)(&amp;(itr))))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01176">1176</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae92800f51d41efde1072750e925dc6df"></a><!-- doxytag: member="dcseq.h::__dcseq_add_later" ref="gae92800f51d41efde1072750e925dc6df" args="(type, base, end, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_add_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">((type *)__do_dcseq_add_sub_later((<span class="keywordtype">char</span>*)(base), (<span class="keywordtype">char</span>*)(end),  \
            (<span class="keywordtype">char</span>*)((itr) + (cnt)), (<span class="keywordtype">char</span>*)(itr), (<span class="keywordtype">char</span>**)(&amp;(itr))))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01180">1180</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga5ac90e6e8e159d34d0e7c7a7d2fef2f8"></a><!-- doxytag: member="dcseq.h::__dcseq_sub_later" ref="ga5ac90e6e8e159d34d0e7c7a7d2fef2f8" args="(type, base, end, itr, cnt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_sub_later</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cnt&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">((type *)__do_dcseq_add_sub_later((<span class="keywordtype">char</span>*)(base), (<span class="keywordtype">char</span>*)(end),  \
            (<span class="keywordtype">char</span>*)((itr) - (cnt)), (<span class="keywordtype">char</span>*)(itr), (<span class="keywordtype">char</span>**)(&amp;(itr))))
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01184">1184</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga597993b699fe8ad8ad2684ed4be30341"></a><!-- doxytag: member="dcseq.h::dcseq_iter_less" ref="ga597993b699fe8ad8ad2684ed4be30341" args="(first, last, itr1, itr2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_less</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_iter_less((<span class="keywordtype">char</span>*)(first), (<span class="keywordtype">char</span>*)(last), \
                      (<span class="keywordtype">char</span>*)(itr1), (<span class="keywordtype">char</span>*)(itr2))
</pre></div>
<p>判断itr1是否小于itr2 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>表头的first字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>表头的last字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr1</td><td>迭代器1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr2</td><td>迭代器2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>返回判断结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>itr1小于itr2 </td></tr>
    <tr><td class="paramname">0</td><td>itr1大于等于itr2 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01223">1223</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2362e4de1dc10f118af111cfca83bc40"></a><!-- doxytag: member="dcseq.h::dcseq_iter_less_equal" ref="ga2362e4de1dc10f118af111cfca83bc40" args="(first, last, itr1, itr2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_less_equal</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_iter_less_equal((<span class="keywordtype">char</span>*)(first), (<span class="keywordtype">char</span>*)(last), \
                            (<span class="keywordtype">char</span>*)(itr1), (<span class="keywordtype">char</span>*)(itr2))
</pre></div>
<p>判断itr1是否小于等于itr2 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>表头的first字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>表头的last字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr1</td><td>迭代器1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr2</td><td>迭代器2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>返回判断结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>itr1小于等于itr2 </td></tr>
    <tr><td class="paramname">0</td><td>itr1大于itr2 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01248">1248</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaffb6790b6ba112981a975fbc1fd3b10e"></a><!-- doxytag: member="dcseq.h::dcseq_iter_greater" ref="gaffb6790b6ba112981a975fbc1fd3b10e" args="(first, last, itr1, itr2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_greater</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_iter_greater((<span class="keywordtype">char</span>*)(first), (<span class="keywordtype">char</span>*)(last), \
                         (<span class="keywordtype">char</span>*)(itr1), (<span class="keywordtype">char</span>*)(itr2))
</pre></div>
<p>判断itr1是否大于itr2 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>表头的first字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>表头的last字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr1</td><td>迭代器1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr2</td><td>迭代器2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>返回判断结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>itr1大于itr2 </td></tr>
    <tr><td class="paramname">0</td><td>itr1小于等于itr2 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01274">1274</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gad777d40b5430cd03c03c09c32e57c5e7"></a><!-- doxytag: member="dcseq.h::dcseq_iter_greater_equal" ref="gad777d40b5430cd03c03c09c32e57c5e7" args="(first, last, itr1, itr2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_iter_greater_equal</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">itr2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment">__dcseq_iter_greater_equal((<span class="keywordtype">char</span>*)(first), (<span class="keywordtype">char</span>*)(last), \
                               (<span class="keywordtype">char</span>*)(itr1), (<span class="keywordtype">char</span>*)(itr2))
</pre></div>
<p>判断itr1是否大于等于itr2 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>表头的first字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>表头的last字段 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr1</td><td>迭代器1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">itr2</td><td>迭代器2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd>返回判断结果 </dd></dl>
<dl><dt><b>返回值:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>itr1大于等于itr2 </td></tr>
    <tr><td class="paramname">0</td><td>itr1小于itr2 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01299">1299</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gac2168edcbae3122bbe1292262c2d780a"></a><!-- doxytag: member="dcseq.h::dcseq_foreach" ref="gac2168edcbae3122bbe1292262c2d780a" args="(type, head, begin, _end, fn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_foreach</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fn&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type* _q_B = (head)-&gt;base;                  \
        type* _q_E = (head)-&gt;end;                   \
        type * _q_e = (type *)(_end);               \
        type * _q_f = (type *)(begin);              \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                      \
            fn(_q_f);                               \
            __dcseq_inc(_q_B, _q_E, _q_f);          \
        }                                           \
    } <span class="keywordflow">while</span>(0)
</pre></div>
<p>正向遍历begin到end的节点， 并为每一个节点调用回调函数或宏 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fn</td><td>回调函数或宏 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01324">1324</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae3989307be034e738fe1921b441056d0"></a><!-- doxytag: member="dcseq.h::dcseq_reverse_foreach" ref="gae3989307be034e738fe1921b441056d0" args="(type, head, rbegin, rend, fn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_reverse_foreach</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">rbegin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">rend, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fn&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type* _q_B = (head)-&gt;base;                  \
        type* _q_E = (head)-&gt;end;                   \
        type * _q_e = (type *)(rend);               \
        type * _q_f = (type *)(rbegin);             \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                      \
            fn(_q_f);                               \
            __dcseq_dec(_q_B, _q_E, _q_f);          \
        }                                           \
    } <span class="keywordflow">while</span>(0)
</pre></div>
<p>逆向遍历rbegin到rend的节点， 并为每一个节点调用回调函数或宏 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rbegin</td><td>逆向起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rend</td><td>逆向终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fn</td><td>回调函数或宏 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01345">1345</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga0481383b88b1a7f232120f776872a7d4"></a><!-- doxytag: member="dcseq.h::dcseq_search" ref="ga0481383b88b1a7f232120f776872a7d4" args="(type, head, begin, _end, equal, var, res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_search</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">equal, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">var, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">res&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type _q_t = (var);                              \
        type * _q_e = (_end);                           \
        type * _q_f = (begin);                          \
        type* _q_B = (head)-&gt;base;                      \
        type* _q_E = (head)-&gt;end;                       \
        (res) = NULL;                                   \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                          \
            <span class="keywordflow">if</span> (equal(_q_f, (&amp;_q_t))) {                 \
                (res) = _q_f;                           \
                <span class="keywordflow">break</span>;                                  \
            }                                           \
            __dcseq_inc(_q_B, _q_E, _q_f);              \
        }                                               \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>顺序查找区域内的指定节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">equal</td><td>比较函数或宏。相等时返回1，不相等返回0 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">var</td><td>搜索的键值，常量，变量均可 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>保存搜索结果的变量，类型是节点指针。 结果为NULL表示找不到节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa6ab92ee8678331df3af5f4c2f8e281d" title="二分查找区域内的指定节点">dcseq_binary_search</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01369">1369</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaa6ab92ee8678331df3af5f4c2f8e281d"></a><!-- doxytag: member="dcseq.h::dcseq_binary_search" ref="gaa6ab92ee8678331df3af5f4c2f8e281d" args="(type, head, begin, _end, greater, var, res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_binary_search</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">var, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">res&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type _q_t = (var);                                          \
        type * _q_e = (_end);                                       \
        type * _q_f = (begin);                                      \
        type* _q_B = (head)-&gt;base;                                  \
        type* _q_E = (head)-&gt;end;                                   \
        <span class="keywordtype">int</span> _q_s = _q_E - _q_B;                                     \
        (res) = NULL;                                               \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                                      \
            type * _q_m = __dcseq_advance(type, _q_B, _q_E, _q_f +  \
                ((__dcseq_distance(_q_s, _q_e - _q_f) - 1) &gt;&gt; 1));  \
            <span class="keywordflow">if</span> (greater(_q_m, (&amp;_q_t)))                             \
                _q_e = _q_m;                                        \
            <span class="keywordflow">else</span> <span class="keywordflow">if</span> (greater((&amp;_q_t), _q_m))                        \
                _q_f = __dcseq_next(_q_B, _q_E, _q_m);              \
            <span class="keywordflow">else</span> {                                                  \
                (res) = _q_m;                                       \
                <span class="keywordflow">break</span>;                                              \
            }                                                       \
        }                                                           \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>二分查找区域内的指定节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏。升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">var</td><td>搜索的键值，常量，变量均可 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>保存搜索结果的变量，类型是节点指针。结果为NULL表示找不到节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>必须保证，表在查找之前是升序的 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0481383b88b1a7f232120f776872a7d4" title="顺序查找区域内的指定节点">dcseq_search</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01398">1398</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga49f9bab17c77a6f8e851ea9ca1eee12b"></a><!-- doxytag: member="dcseq.h::dcseq_vbegin" ref="ga49f9bab17c77a6f8e851ea9ca1eee12b" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_vbegin</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;dcseq_begin(head)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到正反转的起始迭代器 </p>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回正反转迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 反转表</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) ve = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>(<span class="keywordtype">int</span>, &amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vi = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vr = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>(&amp;head);
    while (vi &lt; ve) {
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a>(<span class="keywordtype">int</span>, head, vi, vr);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae1c00c20f6e35304548845e17f56d625" title="反转表">dcseq_reverse</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01453">1453</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga532f7a370d2929d520056156408fc0dc"></a><!-- doxytag: member="dcseq.h::dcseq_rvbegin" ref="ga532f7a370d2929d520056156408fc0dc" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_rvbegin</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head</td><td>)</td>
          <td>&#160;&#160;&#160;dcseq_rbegin(head)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到逆反转的起始迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae1c00c20f6e35304548845e17f56d625" title="反转表">dcseq_reverse</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01454">1454</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga7833ddc71d73f5beb56f52a35dbbc274"></a><!-- doxytag: member="dcseq.h::dcseq_vend" ref="ga7833ddc71d73f5beb56f52a35dbbc274" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_vend</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_at(type, head, dcseq_count(head) &gt;&gt; 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>得到用于反转的终止位置的迭代器 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>返回:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter(type)</a> 返回迭代器 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 反转表</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) ve = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vi = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vr = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>(&amp;head);
    while (vi != ve) {
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a>(<span class="keywordtype">int</span>, &amp;head, vi, vr);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gae1c00c20f6e35304548845e17f56d625" title="反转表">dcseq_reverse</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01474">1474</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2adfd41ea411c35385493e77210f19d7"></a><!-- doxytag: member="dcseq.h::__dcseq_vnext" ref="ga2adfd41ea411c35385493e77210f19d7" args="(base, end, i, r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_vnext</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">i, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">r&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
        __dcseq_inc(base, end, i);          \
        __dcseq_dec(base, end, r);          \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01477">1477</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gab0c05b829ca60d94afafb55a31e6b314"></a><!-- doxytag: member="dcseq.h::dcseq_vnext" ref="gab0c05b829ca60d94afafb55a31e6b314" args="(head, i, r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_vnext</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">i, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">r&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {    \
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga42572fa27232bd6618cb30487fa0be60" title="迭代器递增">dcseq_inc</a>(head, i);             \
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga835a40bc65b0348e544cbec9fac6b21f" title="迭代器递减">dcseq_dec</a>(head, r);             \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01482">1482</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga2d8860766bb29cfcf51d70fa5ddc026a"></a><!-- doxytag: member="dcseq.h::__dcseq_vswap" ref="ga2d8860766bb29cfcf51d70fa5ddc026a" args="(type, base, end, i, r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_vswap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">i, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">r&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {   \
        __dcseq_iter_swap(type, i, r);              \
        __dcseq_vnext(base, end, i, r);             \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01487">1487</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga4980e41e8bf7f890effe770d4ddd75a9"></a><!-- doxytag: member="dcseq.h::dcseq_vswap" ref="ga4980e41e8bf7f890effe770d4ddd75a9" args="(type, head, i, r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_vswap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">i, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">r&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {  \
        __dcseq_iter_swap(type, i, r);      \
        dcseq_vnext(head, i, r);            \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>交换反转操作 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>正反转迭代器 </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">r</td><td>逆反转迭代器 </td></tr>
  </table>
  </dd>
</dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="comment">// 反转表</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) ve = <a class="code" href="group___xE5_x8D_x95_xE5_x90_x91_xE7_xBA_xBF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga169be3d345b481c5c2655abbfd663826" title="得到用于反转的终止位置的迭代器">sllnk_vend</a>(<span class="keywordtype">int</span>, &amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vi = <a class="code" href="group___xE5_x8D_x95_xE5_x90_x91_xE7_xBA_xBF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga4c010000f3a7fc4d9c3ff5199896d627" title="得到用于反转的起始位置的迭代器">sllnk_vbegin</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) vr = sllnk_rvbegin(&amp;head);
    while (vi != ve) {
        sllnk_vswap(<span class="keywordtype">int</span>, &amp;head, vi, vr);
    }
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8D_x95_xE5_x90_x91_xE7_xBA_xBF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga4c010000f3a7fc4d9c3ff5199896d627" title="得到用于反转的起始位置的迭代器">sllnk_vbegin</a>, <a class="el" href="group___xE5_x8D_x95_xE5_x90_x91_xE7_xBA_xBF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga169be3d345b481c5c2655abbfd663826" title="得到用于反转的终止位置的迭代器">sllnk_vend</a>, <a class="el" href="group___xE5_x8D_x95_xE5_x90_x91_xE7_xBA_xBF_xE5_xBD_xA2_xE9_x93_xBE_xE8_xA1_xA8.html#ga71dc4ef578add6513b4eb045b41dcecb" title="反转表">sllnk_reverse</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01511">1511</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae1c00c20f6e35304548845e17f56d625"></a><!-- doxytag: member="dcseq.h::dcseq_reverse" ref="gae1c00c20f6e35304548845e17f56d625" args="(type, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_reverse</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                      \
        type * _q_B = (head)-&gt;base;                         \
        type * _q_E = (head)-&gt;end;                          \
        type * _q_e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>(type, head);               \
        type * _q_i = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>(head);                   \
        type * _q_j = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>(head);                  \
        <span class="keywordflow">while</span> (_q_i != _q_e)                                \
            __dcseq_vswap(type, _q_B, _q_E, _q_i, _q_j);    \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>反转表 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga49f9bab17c77a6f8e851ea9ca1eee12b" title="得到正反转的起始迭代器">dcseq_vbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga532f7a370d2929d520056156408fc0dc" title="得到逆反转的起始迭代器">dcseq_rvbegin</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga7833ddc71d73f5beb56f52a35dbbc274" title="得到用于反转的终止位置的迭代器">dcseq_vend</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga4980e41e8bf7f890effe770d4ddd75a9" title="交换反转操作">dcseq_vswap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01523">1523</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga87879cbca6e59c75ef488c453d75c76e"></a><!-- doxytag: member="dcseq.h::dcseq_serialize" ref="ga87879cbca6e59c75ef488c453d75c76e" args="(type, head, buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_serialize</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">buf&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {           \
        type * _q_d = (type *)(buf);                    \
        type * _q_f = (head)-&gt;first;                    \
        type * _q_e = (head)-&gt;end;                      \
        <span class="keywordtype">size_t</span> _q_c = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaedbaf43349facc54fd28d5c3ac6dec95" title="获取表的节点总数">dcseq_count</a>(head);                \
        <span class="keywordflow">if</span> (_q_f + _q_c &gt; _q_e) {                       \
            <span class="keywordtype">size_t</span> _q_fs = _q_e - _q_f;                 \
            memcpy(_q_d, _q_f, <span class="keyword">sizeof</span>(type) * _q_fs);   \
            memcpy(_q_d + _q_fs, (head)-&gt;base,          \
                   <span class="keyword">sizeof</span>(type) * (_q_c - _q_fs));      \
        } <span class="keywordflow">else</span>                                          \
            memcpy(_q_d, _q_f, <span class="keyword">sizeof</span>(type) * _q_c);    \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>序列化 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>序列缓存 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd>若要进行反序列化还原表，请使用dcseq_init_serial, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaa10646448a570409afa332c4715bbc86" title="初始化序列">DCSEQ_INIT_SERIAL</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01541">1541</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga1bbbab45a7cd2e7fb868901876fcf2de"></a><!-- doxytag: member="dcseq.h::dcseq_fill" ref="ga1bbbab45a7cd2e7fb868901876fcf2de" args="(type, head, begin, _end, val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_fill</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {   \
        type _q_v = (val);                              \
        type* _q_B = (head)-&gt;base;                      \
        type* _q_E = (head)-&gt;end;                       \
        type * _q_e = (type *)(_end);                   \
        type * _q_f = (type *)(begin);                  \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                          \
            *_q_f = _q_v;                               \
            __dcseq_inc(_q_B, _q_E, _q_f);              \
        }                                               \
    } <span class="keywordflow">while</span>(0)
</pre></div>
<p>用val填充区域 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>填充值 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga09978a995c2812e161379bcb5dfcbac7" title="使用输入产生器来填充区域">dcseq_generate</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01565">1565</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga09978a995c2812e161379bcb5dfcbac7"></a><!-- doxytag: member="dcseq.h::dcseq_generate" ref="ga09978a995c2812e161379bcb5dfcbac7" args="(type, head, begin, _end, generator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_generate</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">generator&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type* _q_B = (head)-&gt;base;                  \
        type* _q_E = (head)-&gt;end;                   \
        type * _q_e = (type *)(_end);               \
        type * _q_f = (type *)(begin);              \
        <span class="keywordflow">while</span> (_q_f != _q_e) {                      \
            *_q_f = (generator);                    \
            __dcseq_inc(_q_B, _q_E, _q_f);          \
        }                                           \
    } <span class="keywordflow">while</span>(0)
</pre></div>
<p>使用输入产生器来填充区域 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">generator</td><td>输入产生器 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga1bbbab45a7cd2e7fb868901876fcf2de" title="用val填充区域">dcseq_fill</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01587">1587</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga99199c778b2eef7b69782e9d8162b8ba"></a><!-- doxytag: member="dcseq.h::dcseq_is_heap" ref="ga99199c778b2eef7b69782e9d8162b8ba" args="(type, head, begin, _end, greater, res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_is_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">res&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {               \
        type * _q_e = (_end);                                                   \
        type * _q_p = (begin);                                                  \
        type * _q_B = (head)-&gt;base;                                             \
        type * _q_E = (head)-&gt;end;                                              \
        <span class="keywordtype">size_t</span> _q_d = (__dcseq_distance(_q_E - _q_B, _q_e - _q_p) - 2) &gt;&gt; 1;    \
        type * _q_i = __dcseq_next(_q_B, _q_E, _q_p);                           \
        <span class="keywordflow">for</span> ((res) = 1; _q_d--; _q_p = __dcseq_next(_q_B, _q_E, _q_p)) {        \
            __dcseq_ret_gt(_q_B, _q_E, _q_i, _q_p, res, greater);               \
            __dcseq_ret_gt(_q_B, _q_E, _q_i, _q_p, res, greater);               \
        }                                                                       \
        <span class="keywordflow">if</span> (_q_i != _q_e &amp;&amp; (greater(_q_i, _q_p))) {                            \
            (res) = 0; <span class="keywordflow">break</span>;                                                   \
        }                                                                       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>判断区域是否是一个最大堆 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏 最大堆:(*i &gt; *j) 最小堆:(*i &lt; *j) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>保存结果的变量，1为真，0为假 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>方法:逐个比较每个非根节点与其父节点的值 </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga24e87cd87cd11ac60d3b65941060c3cf" title="将区域最后一个节点插入到堆中">dcseq_push_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3806407289a20307435660eb285ed540" title="弹出区域中堆的顶点节点">dcseq_pop_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04" title="对最大堆进行排序">dcseq_sort_heap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01611">1611</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga24e87cd87cd11ac60d3b65941060c3cf"></a><!-- doxytag: member="dcseq.h::dcseq_push_heap" ref="ga24e87cd87cd11ac60d3b65941060c3cf" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_push_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {              \
        type * _q_F = (head)-&gt;first;                                        \
        type * _q_B = (head)-&gt;base;                                         \
        type * _q_E = (head)-&gt;end;                                          \
        <span class="keywordtype">size_t</span> _q_i = __dcseq_distance(_q_E - _q_B, (_end) - (begin)) - 2;  \
        <span class="keywordtype">size_t</span> _q_p = (_q_i - 1) &gt;&gt; 1;                                      \
        type * _q_ib = __dcseq_at(type, _q_B, _q_E, _q_F + _q_i);           \
        type * _q_pb = __dcseq_at(type, _q_B, _q_E, _q_F + _q_p);           \
        type _q_t = *_q_ib;                                                 \
        <span class="keywordflow">while</span> (_q_i &amp;&amp; (greater((&amp;_q_t), _q_pb))) {                         \
            *_q_ib = *_q_pb;                                                \
            _q_ib = _q_pb;                                                  \
            _q_i = _q_p;                                                    \
            _q_p = (_q_p - 1) &gt;&gt; 1;                                         \
            _q_pb = __dcseq_at(type, _q_B, _q_E, _q_F + _q_p);              \
        }                                                                   \
        *_q_ib = _q_t;                                                      \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>将区域最后一个节点插入到堆中 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏 最大堆:(*i &gt; *j) 最小堆:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>使用上滤插入法将最后一个节点last插入到(first,last-1)堆中， 所以插入的前提是(first,last-1)是一个堆<br/>
 上滤插入算法如下：<br/>
 (1) 将last记为current节点.<br/>
 (2) 若current无父节点(即current为根节点)，则退出.<br/>
 (3) 若current的值小于等于父节点的值，则退出.<br/>
 (4) 交换current和父节点的值，并记父节点为current节点，转(2) </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga99199c778b2eef7b69782e9d8162b8ba" title="判断区域是否是一个最大堆">dcseq_is_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3806407289a20307435660eb285ed540" title="弹出区域中堆的顶点节点">dcseq_pop_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04" title="对最大堆进行排序">dcseq_sort_heap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01648">1648</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga3806407289a20307435660eb285ed540"></a><!-- doxytag: member="dcseq.h::dcseq_pop_heap" ref="ga3806407289a20307435660eb285ed540" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pop_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {           \
        type * _q_B = (head)-&gt;base;                                     \
        type * _q_E = (head)-&gt;end;                                      \
        __dcseq_pop_heap(type, _q_B, _q_E, begin, _end, greater);       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>弹出区域中堆的顶点节点 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏 最大堆:(*i &gt; *j) 最小堆:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>使用下滤删除法将first顶点节点从堆中删除，并移动至last位置， 所以删除的前提是(first,last)是一个堆<br/>
 下滤删除算法如下：<br/>
 (1)交换根节点begin和最后子节点last的值.<br/>
 (2)对根节点begin进行下滤调整. </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga99199c778b2eef7b69782e9d8162b8ba" title="判断区域是否是一个最大堆">dcseq_is_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga24e87cd87cd11ac60d3b65941060c3cf" title="将区域最后一个节点插入到堆中">dcseq_push_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04" title="对最大堆进行排序">dcseq_sort_heap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01683">1683</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga76cf52279a9abbf62f36d18118c0ee99"></a><!-- doxytag: member="dcseq.h::__dcseq_pop_heap" ref="ga76cf52279a9abbf62f36d18118c0ee99" args="(type, base, _End, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_pop_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_End, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {       \
        type * _q_l = (type *)(_end);                                       \
        type * _q_F = (type *)(begin);                                      \
        type * _q_ib, * _q_jb, * _q_f = _q_F;                               \
        type _q_t = *_q_f;                                                  \
        <span class="keywordtype">size_t</span> _q_L, _q_p = 0, _q_j = 2;                                    \
        __dcseq_dec(base, _End, _q_l);                                      \
        _q_L = __dcseq_distance(_End - base, _q_l - _q_F) - 1;              \
        <span class="keywordflow">for</span> (; _q_j &lt;= _q_L; _q_j = (_q_p + 1) &lt;&lt; 1) {                      \
            _q_jb = __dcseq_at(type, base, _End, _q_F + _q_j);              \
            _q_ib = __dcseq_prev(base, _End, _q_jb);                        \
            <span class="keywordflow">if</span> (greater(_q_jb, _q_ib)) {                                    \
                *_q_f = *_q_jb;                                             \
                _q_f = _q_jb;                                               \
                _q_p = _q_j;                                                \
            } <span class="keywordflow">else</span> {                                                        \
                *_q_f = *_q_ib;                                             \
                _q_f = _q_ib;                                               \
                _q_p = _q_j - 1;                                            \
            }                                                               \
        }                                                                   \
        _q_jb = __dcseq_at(type, base, _End, _q_F + ((_q_p - 1) &gt;&gt; 1));     \
        <span class="keywordflow">if</span> (greater(_q_l, _q_jb)) {                                         \
            *_q_f = *_q_jb;                                                 \
            *_q_jb = *_q_l;                                                 \
        } <span class="keywordflow">else</span>                                                              \
            *_q_f = *_q_l;                                                  \
        *_q_l = _q_t;                                                       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01689">1689</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gae4df028da86f95c50543b23f3fad7e83"></a><!-- doxytag: member="dcseq.h::__dcseq_adjust_heap" ref="gae4df028da86f95c50543b23f3fad7e83" args="(type, base, end, begin, first, last, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_adjust_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">first, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">last, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {<span class="keywordtype">size_t</span> _q_j = ((first) + 1) &lt;&lt; 1;                               \
        type * _q_pb = __dcseq_at(type, base, end, (begin) + (first));  \
        type * _q_lb = __dcseq_at(type, base, end, (begin) + (last));   \
        type * _q_ib, * _q_jb, * _q_mb;                                 \
        type _q_t = *_q_pb;                                             \
        <span class="keywordflow">while</span> (_q_j &lt;= (last)) {                                        \
            _q_jb = __dcseq_at(type, base, end, (begin) + _q_j);        \
            _q_ib = __dcseq_prev(base, end, _q_jb);                     \
            <span class="keywordflow">if</span> (greater(_q_jb, _q_ib)) {                                \
                _q_mb = _q_jb;                                          \
                _q_j = (_q_j + 1) &lt;&lt; 1;                                 \
            } <span class="keywordflow">else</span> {                                                    \
                _q_mb = _q_ib;                                          \
                _q_j = _q_j &lt;&lt; 1;                                       \
            }                                                           \
            <span class="keywordflow">if</span> (greater((&amp;_q_t), _q_mb))                                \
                <span class="keywordflow">break</span>;                                                  \
            *_q_pb = *_q_mb;                                            \
            _q_pb = _q_mb;                                              \
        }                                                               \
        <span class="keywordflow">if</span> (_q_j == (last) + 1 &amp;&amp; (greater(_q_lb, (&amp;_q_t)))) {          \
            *_q_pb = *_q_lb;                                            \
            *_q_lb = _q_t;                                              \
        } <span class="keywordflow">else</span>                                                          \
            *_q_pb = _q_t;                                              \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01729">1729</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga3b32d00e1ad46490f8dc23d42bb41cca"></a><!-- doxytag: member="dcseq.h::dcseq_make_heap" ref="ga3b32d00e1ad46490f8dc23d42bb41cca" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_make_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                      \
        type * _q1_B = (head)-&gt;base;                                                \
        type * _q1_E = (head)-&gt;end;                                                 \
        type * _q1_f = (type *)(begin);                                             \
        <span class="keywordtype">size_t</span> _q1_l = __dcseq_distance(_q1_E - _q1_B, (_end) - _q1_f) - 2;         \
        <span class="keywordtype">size_t</span> _q1_i = ((_q1_l - 1) &gt;&gt; 1) + 1;                                      \
        <span class="keywordflow">while</span> (_q1_i--)                                                             \
            __dcseq_adjust_heap(type, _q1_B, _q1_E, _q1_f, _q1_i, _q1_l, greater);  \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>将一段区域建立成最大堆 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏 最大堆:(*i &gt; *j) 最小堆:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>建立堆的算法如下：<br/>
 (1)将最后一个子节点的父节点记为current节点.<br/>
 (2)对current节点进行下滤调整.<br/>
 (3)若current节点向左有同一高度的节点，则将该节点设为current节点并转(2).<br/>
 (4)若current节点有父节点，则将其父节点记为current节点并转(2).<br/>
 (5)若current没有父节点(即current节点为根节点)，则退出算法. </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga99199c778b2eef7b69782e9d8162b8ba" title="判断区域是否是一个最大堆">dcseq_is_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3806407289a20307435660eb285ed540" title="弹出区域中堆的顶点节点">dcseq_pop_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga70013a4cedd4531baf023feede4dbb04" title="对最大堆进行排序">dcseq_sort_heap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01774">1774</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga70013a4cedd4531baf023feede4dbb04"></a><!-- doxytag: member="dcseq.h::dcseq_sort_heap" ref="ga70013a4cedd4531baf023feede4dbb04" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_sort_heap</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                  \
        type * _q1_B = (head)-&gt;base;                                            \
        type * _q1_E = (head)-&gt;end;                                             \
        type * _q1_e = (type *)(_end);                                          \
        type * _q1_f = (type *)(begin);                                         \
        <span class="keywordflow">while</span> (_q1_e != _q1_f) {                                                \
            __dcseq_pop_heap(type, _q1_B, _q1_E, _q1_f, _q1_e, greater);        \
            __dcseq_dec(_q1_B, _q1_E, _q1_e);                                   \
        }                                                                       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>对最大堆进行排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>比较函数或宏 最大堆:(*i &gt; *j) 最小堆:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>排序堆的算法如下(升序)：<br/>
 (1)若first等于last，则排序完成.<br/>
 (2)对(first, last)区间进行pop_heap.<br/>
 (3)last递减，转(1), </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3b32d00e1ad46490f8dc23d42bb41cca" title="将一段区域建立成最大堆">dcseq_make_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga99199c778b2eef7b69782e9d8162b8ba" title="判断区域是否是一个最大堆">dcseq_is_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga3806407289a20307435660eb285ed540" title="弹出区域中堆的顶点节点">dcseq_pop_heap</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga24e87cd87cd11ac60d3b65941060c3cf" title="将区域最后一个节点插入到堆中">dcseq_push_heap</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01799">1799</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga8001a76151ce4cd6ee392b9a579eb8fe"></a><!-- doxytag: member="dcseq.h::dcseq_shuffle" ref="ga8001a76151ce4cd6ee392b9a579eb8fe" args="(type, head, begin, _end, _RAND)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_shuffle</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_RAND&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                  \
        type * _q_F = (head)-&gt;first;                                        \
        type * _q_B = (head)-&gt;base;                                         \
        type * _q_E = (head)-&gt;end;                                          \
        type * _q_l = (type *)(_end);                                       \
        type * _q_f = (type *)(begin);                                      \
        <span class="keywordtype">size_t</span> _q_j;                                                        \
        __dcseq_dec(_q_B, _q_E, _q_l);                                      \
        _q_j = __dcseq_distance(_q_E - _q_B, _q_l - _q_f) - 1;              \
        <span class="keywordflow">while</span> (_q_j) {                                                      \
            <span class="keywordtype">size_t</span> _q_n = (_RAND) % (_q_j + 1);                             \
            <span class="keywordflow">if</span> (_q_j-- &gt; _q_n) {                                            \
                type * _q_N = __dcseq_at(type, _q_B, _q_E, _q_F + _q_n);    \
                __dcseq_iter_swap(type, _q_l, _q_N);                        \
            }                                                               \
            __dcseq_dec(_q_B, _q_E, _q_l);                                  \
        }                                                                   \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>对区域内的节点进行随机排列 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_RAND</td><td>随机数产生器 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01819">1819</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga19106e50ba4708aaf2c700eed7ab0eb1"></a><!-- doxytag: member="dcseq.h::dcseq_sort_insert" ref="ga19106e50ba4708aaf2c700eed7ab0eb1" args="(type, head, begin, _end, newly, greater_equal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_sort_insert</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">newly, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater_equal&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type _q1_n = (newly);                           \
        type * _q1_f = (begin);                         \
        <span class="keywordflow">do</span> {                                            \
            type * _q1_B = (head)-&gt;base;                \
            type * _q1_E = (head)-&gt;end;                 \
            type * _q1_e = (_end);                      \
            <span class="keywordflow">while</span> (_q1_f != _q1_e) {                    \
                <span class="keywordflow">if</span> (greater_equal(_q1_f, (&amp;_q1_n)))     \
                    <span class="keywordflow">break</span>;                              \
                __dcseq_inc(_q1_B, _q1_E, _q1_f);       \
            }                                           \
        } <span class="keywordflow">while</span> (0);                                    \
        <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga2c7dab6b2be2e3a8d6bd95c7b06791ae" title="在指定位置插入节点">dcseq_insert</a>(type, head, _q1_f, _q1_n);         \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>按序插入 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newly</td><td>新节点 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater_equal</td><td>比较函数或宏 升序:(*i &gt;= *j) </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01846">1846</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gaef96e240d3b279b8eb2f46bd147c0b92"></a><!-- doxytag: member="dcseq.h::dcseq_is_sorted" ref="gaef96e240d3b279b8eb2f46bd147c0b92" args="(type, head, begin, _end, greater_equal, res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_is_sorted</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater_equal, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">res&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type * _q_B = (head)-&gt;base;                         \
        type * _q_E = (head)-&gt;end;                          \
        type * _q_e = (_end);                               \
        type * _q_i = (begin);                              \
        type * _q_j = __dcseq_next(_q_B, _q_E, _q_i);       \
        (res) = 1;                                          \
        <span class="keywordflow">while</span> (_q_j != _q_e) {                              \
            <span class="keywordflow">if</span> (!(greater_equal(_q_j, _q_i))) {             \
                (res) = 0; <span class="keywordflow">break</span>;                           \
            }                                               \
            _q_i = _q_j;                                    \
            __dcseq_inc(_q_B, _q_E, _q_j);                  \
        }                                                   \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>判断区域是否是已排序的 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater_equal</td><td>比较函数或宏 升序:(*i &gt;= *j) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>保存结果的变量 </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab28cb3d399f9e944a37306161671f051" title="冒泡排序">dcseq_bubble_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga067b0e3265a2a524f33813d014ede4bb" title="选择排序">dcseq_select_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0383a8dd2d6850231e26d4c5bbc894b5" title="插入排序">dcseq_insert_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gac737294728c7c43c4d003b1f82690a41" title="希尔排序">dcseq_shell_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga23f7f28d4e1bb6a16df653258a76ff0f" title="奇偶排序">dcseq_oddeven_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga533b795a92e90a8d0c71e25e6ea07ef6" title="梳子排序">dcseq_comb_sort</a>, dcseq_cocktail_sort, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga233c96443471123318f2de6262eefa20" title="计数排序">dcseq_counting_sort</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0d1f01908ac57276f253d972c0152120" title="鸽巢排序">dcseq_pigeonhole_sort</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01875">1875</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gab28cb3d399f9e944a37306161671f051"></a><!-- doxytag: member="dcseq.h::dcseq_bubble_sort" ref="gab28cb3d399f9e944a37306161671f051" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_bubble_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {  \
        <span class="keywordtype">int</span> _q_pc = 1;                                          \
        type * _q_B = (head)-&gt;base;                             \
        type * _q_E = (head)-&gt;end;                              \
        type * _q_i = (begin);                                  \
        type * _q_f = __dcseq_prev(_q_B, _q_E, _q_i);           \
        type * _q_l = __dcseq_prev(_q_B, _q_E, _end);           \
        <span class="keywordflow">while</span> (_q_pc &amp;&amp; _q_i != _q_l) {                         \
            type * _q_j = __dcseq_prev(_q_B, _q_E, _q_l);       \
            _q_pc = 0;                                          \
            <span class="keywordflow">while</span> ( _q_j != _q_f) {                             \
                type * _q_k = __dcseq_next(_q_B, _q_E, _q_j);   \
                <span class="keywordflow">if</span> (greater(_q_j, _q_k)) {                      \
                    __dcseq_iter_swap(type, _q_j, _q_k);        \
                    _q_pc = 1;                                  \
                }                                               \
                __dcseq_dec(_q_B, _q_E, _q_j);                  \
            }                                                   \
            __dcseq_inc(_q_B, _q_E, _q_i);                      \
        }                                                       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>冒泡排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01901">1901</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga23f7f28d4e1bb6a16df653258a76ff0f"></a><!-- doxytag: member="dcseq.h::dcseq_oddeven_sort" ref="ga23f7f28d4e1bb6a16df653258a76ff0f" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_oddeven_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {   \
        <span class="keywordtype">int</span> _q_pc = 1;                                              \
        type * _q_B = (head)-&gt;base;                                 \
        type * _q_E = (head)-&gt;end;                                  \
        type * _q_l = __dcseq_prev(_q_B, _q_E, _end);               \
        type * _q_f = (begin);                                      \
        <span class="keywordflow">while</span> (_q_pc) {                                             \
            <span class="keywordtype">int</span> _q_w; _q_pc = 0;                                    \
            <span class="keywordflow">for</span> (_q_w = 0; _q_w &lt; 2; ++_q_w)                        \
                __dcseq_oddeven_scan(_q_w, type, greater);          \
        }                                                           \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>奇偶排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01932">1932</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga87ae8910317fac47f19efaa3beba5e41"></a><!-- doxytag: member="dcseq.h::__dcseq_oddeven_scan" ref="ga87ae8910317fac47f19efaa3beba5e41" args="(start, type, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __dcseq_oddeven_scan</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">start, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                 \
        type * _q_i = __dcseq_advance(type, _q_B, _q_E, _q_f + start);  \
        type * _q_p = _q_i;                                             \
        <span class="keywordflow">while</span> (_q_i != _q_l &amp;&amp; _q_p != _q_l) {                          \
            type * _q_j = __dcseq_next(_q_B, _q_E, _q_i);               \
            <span class="keywordflow">if</span> (greater(_q_i, _q_j)) {                                  \
                __dcseq_iter_swap(type, _q_i, _q_j);                    \
                _q_pc = 1;                                              \
            }                                                           \
            _q_p = _q_j;                                                \
            _q_i = __dcseq_advance(type, _q_B, _q_E, _q_i + 2);         \
        }                                                               \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01945">1945</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga533b795a92e90a8d0c71e25e6ea07ef6"></a><!-- doxytag: member="dcseq.h::dcseq_comb_sort" ref="ga533b795a92e90a8d0c71e25e6ea07ef6" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_comb_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {              \
        <span class="keywordtype">int</span> _q_swap = 1;                                                    \
        type * _q_B = (head)-&gt;base;                                         \
        type * _q_E = (head)-&gt;end;                                          \
        type * _q_e = (_end);                                               \
        type * _q_f = (begin);                                              \
        <span class="keywordtype">size_t</span> _q_gap = __dcseq_distance(_q_E - _q_B, _q_e - _q_f) - 1;     \
        <span class="keywordflow">while</span> (_q_gap &gt; 1 || _q_swap) {                                     \
            type * _q_i, * _q_j;                                            \
            <span class="keywordflow">if</span> (_q_gap &gt; 1)                                                 \
                _q_gap = (size_t)(((<span class="keywordtype">double</span>)_q_gap) / 1.247330950103979);    \
            _q_swap = 0;                                                    \
            _q_i = _q_f;                                                    \
            _q_j = __dcseq_advance(type, _q_B, _q_E, _q_f + _q_gap);        \
            <span class="keywordflow">while</span> (_q_j != _q_e) {                                          \
                <span class="keywordflow">if</span> (greater(_q_i, _q_j)) {                                  \
                    __dcseq_iter_swap(type, _q_i, _q_j);                    \
                    _q_swap = 1;                                            \
                }                                                           \
                __dcseq_inc(_q_B, _q_E, _q_i);                              \
                __dcseq_inc(_q_B, _q_E, _q_j);                              \
            }                                                               \
        }                                                                   \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>梳子排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l01969">1969</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga067b0e3265a2a524f33813d014ede4bb"></a><!-- doxytag: member="dcseq.h::dcseq_select_sort" ref="ga067b0e3265a2a524f33813d014ede4bb" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_select_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {    \
        type * _q_B = (head)-&gt;base;                                 \
        type * _q_E = (head)-&gt;end;                                  \
        type * _q_e = (_end);                                       \
        type * _q_i = (begin);                                      \
        type * _q_j = __dcseq_next(_q_B, _q_E, _q_i);               \
        <span class="keywordflow">while</span> (_q_j != _q_e) {                                      \
            type * _q_m = _q_i;                                     \
            type * _q_k = _q_j;                                     \
            <span class="keywordflow">while</span> (_q_k != _q_e) {                                  \
                <span class="keywordflow">if</span> (greater(_q_m, _q_k))                            \
                    _q_m = _q_k;                                    \
                __dcseq_inc(_q_B, _q_E, _q_k);                      \
            }                                                       \
            <span class="keywordflow">if</span> (_q_i != _q_m)                                       \
                __dcseq_iter_swap(type, _q_m, _q_i);                \
            _q_i = _q_j;                                            \
            _q_j = __dcseq_next(_q_B, _q_E, _q_j);                  \
        }                                                           \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>选择排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02004">2004</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga0383a8dd2d6850231e26d4c5bbc894b5"></a><!-- doxytag: member="dcseq.h::dcseq_insert_sort" ref="ga0383a8dd2d6850231e26d4c5bbc894b5" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_insert_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {        \
        type * _q_B = (head)-&gt;base;                                     \
        type * _q_E = (head)-&gt;end;                                      \
        type * _q_l = __dcseq_prev(_q_B, _q_E, _end);                   \
        type * _q_f = (begin);                                          \
        type * _q_i = _q_l;                                             \
        <span class="keywordflow">while</span> (_q_i != _q_f) {                                          \
            type * _q_j = _q_l;                                         \
            __dcseq_dec(_q_B, _q_E, _q_i);                              \
            <span class="keywordflow">while</span> (_q_j != _q_i) {                                      \
                <span class="keywordflow">if</span> (greater(_q_i, _q_j)) {                              \
                    type _q_t = *_q_i;                                  \
                    <span class="keywordflow">if</span> (_q_i &gt; _q_j) {                                  \
                        memcpy(_q_i, _q_i + 1, <span class="keyword">sizeof</span>(type) *           \
                               (_q_E - _q_i - 1));                      \
                        *(_q_E - 1) = *_q_B;                            \
                        memcpy(_q_B, _q_B + 1, <span class="keyword">sizeof</span>(type) *           \
                               (_q_j - _q_B));                          \
                    } <span class="keywordflow">else</span>                                              \
                        memcpy(_q_i, _q_i + 1, <span class="keyword">sizeof</span>(type) *           \
                               (__dcseq_distance(_q_E - _q_B,           \
                                                _q_j - _q_i) - 1));     \
                    *_q_j = _q_t;                                       \
                    <span class="keywordflow">break</span>;                                              \
                }                                                       \
                __dcseq_dec(_q_B, _q_E, _q_j);                          \
            }                                                           \
        }                                                               \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>插入排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02035">2035</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gac737294728c7c43c4d003b1f82690a41"></a><!-- doxytag: member="dcseq.h::dcseq_shell_sort" ref="gac737294728c7c43c4d003b1f82690a41" args="(type, head, begin, _end, greater)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_shell_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">greater&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                 \
        type * _q_B = (head)-&gt;base;                                             \
        type * _q_E = (head)-&gt;end;                                              \
        type * _q_e = (_end);                                                   \
        type * _q_f = (begin);                                                  \
        <span class="keywordtype">size_t</span> _q_gap = (__dcseq_distance(_q_E - _q_B, _q_e - _q_f) - 1) &gt;&gt; 1;  \
        <span class="keywordflow">for</span> (; _q_gap; _q_gap &gt;&gt;= 1) {                                          \
            type * _q_i = __dcseq_advance(type, _q_B, _q_E, _q_f + _q_gap);     \
            <span class="keywordflow">while</span> (_q_i != _q_e) {                                              \
                type _q_t = *_q_i;                                              \
                type * _q_k = _q_i;                                             \
                type * _q_j = __dcseq_advance(type, _q_B, _q_E, _q_i - _q_gap); \
                <span class="keywordflow">while</span> (__dcseq_exist(_q_B, _q_f, _q_e, _q_E, _q_j)              \
                        &amp;&amp; (greater(_q_j, (&amp;_q_t)))) {                          \
                    *_q_k = *_q_j;                                              \
                    _q_k = _q_j;                                                \
                    __dcseq_sub(type, _q_B, _q_E, _q_j, _q_gap);                \
                }                                                               \
                *_q_k = _q_t;                                                   \
                __dcseq_inc(_q_B, _q_E, _q_i);                                  \
            }                                                                   \
        }                                                                       \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>希尔排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">greater</td><td>升序:(*i &gt; *j) 降序:(*i &lt; *j) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02075">2075</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga0e81257e6808089aea04c746c3b14b0b"></a><!-- doxytag: member="dcseq.h::COUNTING_SIZE" ref="ga0e81257e6808089aea04c746c3b14b0b" args="(_min, _max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COUNTING_SIZE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_min, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_max&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((_max) - (_min) + 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>计数排序计数缓存大小 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_min</td><td>节点最小值 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_max</td><td>节点最大值 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02110">2110</a>行定义。</p>

</div>
</div>
<a class="anchor" id="gabe56db9f8a1c3e4e29a31b7597b9b59e"></a><!-- doxytag: member="dcseq.h::PIGEONHOLE_SIZE" ref="gabe56db9f8a1c3e4e29a31b7597b9b59e" args="(_max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PIGEONHOLE_SIZE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_max</td><td>)</td>
          <td>&#160;&#160;&#160;((_max) + 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>鸽巢排序计数缓存大小 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">_max</td><td>节点最大值 </td></tr>
  </table>
  </dd>
</dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02111">2111</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga233c96443471123318f2de6262eefa20"></a><!-- doxytag: member="dcseq.h::dcseq_counting_sort" ref="ga233c96443471123318f2de6262eefa20" args="(type, head, begin, _end, hole, _min, _max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_counting_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hole, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_min, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_max&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>值:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {type * _q_B = (head)-&gt;base;                         \
        type * _q_E = (head)-&gt;end;                          \
        type * _q_hole = (type *)(hole);                    \
        type * _q_e = (_end);                               \
        type * _q_f = (begin);                              \
        type _q_min = (_min);                               \
        type _q_cnt = (_max) - _q_min + 1;                  \
        type _q_i = 0;                                      \
        memset(_q_hole, 0, <span class="keyword">sizeof</span>(type) * _q_cnt);          \
        <span class="keywordflow">while</span> (_q_e != _q_f) {                              \
            __dcseq_dec(_q_B, _q_E, _q_e);                  \
            ++_q_hole[*_q_e - _q_min];                      \
        }                                                   \
        <span class="keywordflow">for</span> (; _q_i &lt; _q_cnt; ++_q_i) {                     \
            <span class="keywordtype">size_t</span> _q_c = _q_hole[_q_i];                    \
            <span class="keywordflow">while</span> (_q_c--) {                                \
                *_q_f = _q_i;                               \
                __dcseq_inc(_q_B, _q_E, _q_f);              \
            }                                               \
        }                                                   \
    } <span class="keywordflow">while</span> (0)
</pre></div>
<p>计数排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hole</td><td>计数巢 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_min</td><td>节点最小值 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_max</td><td>节点最大值 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>要求节点类型必须是整数类型 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="keywordtype">int</span> hole[<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0e81257e6808089aea04c746c3b14b0b" title="计数排序计数缓存大小">COUNTING_SIZE</a>(10, 60)];
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) b = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head);

    <span class="comment">// 计数排序</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga233c96443471123318f2de6262eefa20" title="计数排序">dcseq_counting_sort</a>(<span class="keywordtype">int</span>, &amp;head, b, e, hole, 10, 60);
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0d1f01908ac57276f253d972c0152120" title="鸽巢排序">dcseq_pigeonhole_sort</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02136">2136</a>行定义。</p>

</div>
</div>
<a class="anchor" id="ga0d1f01908ac57276f253d972c0152120"></a><!-- doxytag: member="dcseq.h::dcseq_pigeonhole_sort" ref="ga0d1f01908ac57276f253d972c0152120" args="(type, head, begin, _end, hole, _max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dcseq_pigeonhole_sort</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">begin, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hole, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_max&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;dcseq_counting_sort(type, head, begin, _end, hole, 0, _max)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>鸽巢排序 </p>
<dl><dt><b>参数:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>节点类型 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">head</td><td>表头 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">begin</td><td>起始位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_end</td><td>终止位置 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hole</td><td>计数巢 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">_max</td><td>节点最大值 </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>注解:</b></dt><dd>要求节点类型必须是整数类型，与计数排序不同的是，鸽巢排序 </dd></dl>
<dl class="user"><dt><b>示例:</b></dt><dd><div class="fragment"><pre class="fragment">    <span class="keywordtype">int</span> hole[<a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gabe56db9f8a1c3e4e29a31b7597b9b59e" title="鸽巢排序计数缓存大小">PIGEONHOLE_SIZE</a>(50)];
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) e = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaed55996a20f8e2bed24409fd5319ab96" title="得到指向正向终止位置的迭代器">dcseq_end</a>(&amp;head);
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gab9e84c06cd2a829fa3d8abf71da2b42a" title="定义type类型迭代器">dcseq_iter</a>(<span class="keywordtype">int</span>) b = <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gafd47b3c616bf83cf88e38fc6afcad580" title="得到指向正向起始位置的迭代器">dcseq_begin</a>(&amp;head);

    <span class="comment">// 鸽巢排序</span>
    <a class="code" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga0d1f01908ac57276f253d972c0152120" title="鸽巢排序">dcseq_pigeonhole_sort</a>(<span class="keywordtype">int</span>, &amp;head, b, e, hole, 50);
</pre></div> </dd></dl>
<dl class="see"><dt><b>参见:</b></dt><dd><a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#gaef96e240d3b279b8eb2f46bd147c0b92" title="判断区域是否是已排序的">dcseq_is_sorted</a>, <a class="el" href="group___xE5_x8F_x8C_xE7_xAB_xAF_xE7_x8E_xAF_xE5_xBD_xA2_xE5_xBA_x8F_xE8_xA1_xA8.html#ga233c96443471123318f2de6262eefa20" title="计数排序">dcseq_counting_sort</a> </dd></dl>

<p>在文件<a class="el" href="dcseq_8h_source.html">dcseq.h</a>第<a class="el" href="dcseq_8h_source.html#l02180">2180</a>行定义。</p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>全部</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>数据结构</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>文件</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>函数</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>变量</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>类型定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>宏定义</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generated at 2015年七月16日 星期四 12:00:42 for Navo Portable Library by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>
